Я заметил что в значительной части круга программирования о конкретных представителей паттернов часто говорят: синглтон ( одиночка), стратегия, фабрика и тд. Но почему то, меньше говорят о довольно нужных паттернах (я не отрицаю нужность паттернов перечисленных выше,). Вот сегодня и решил, что пора рассказать о паттерне под названием Observer.
Observer - это паттерн который состоит из события, и подключенных методов объектов к этому событию. Также важно чтобы объекты были унаследованы от интерфейса который объявляет те самые методы которые можно подключить к событию.
Вот так он выглядит на картинке.
Экземпляр наблюдателя наследуется от Observer, а вот объекты у которых должен вызывать методы класс унаследованный от Observer, должны наследоваться от интерфейса IObjectObserver.
Давайте теперь посмотрим где данный паттерн можно применить на практике.
Например вы разработчик какого то приложения, и нужно сделать чтобы какая то группа объектов постоянно проверяла какое то значение. Конечно можно в каждый объект внедрить if, но как сами понимаете это не особо будет быстро работать если будут спрашивать 100 объектов. И нам на помощь приходит паттерн Observer.
И в Main.
И при изменении значения I вызывается событие, которое уже проходит все подписавшиеся объекты, и вызывает у них метод UpdateObject.
Спасибо всем за прочтение. Надеюсь что я объяснил суть данного паттерна, и главное вы его поняли.