Найти тему

Паттерн программирования Observer.

Я заметил что в значительной части круга программирования о конкретных представителей паттернов часто говорят: синглтон ( одиночка), стратегия, фабрика и тд. Но почему то, меньше говорят о довольно нужных паттернах (я не отрицаю нужность паттернов перечисленных выше,). Вот сегодня и решил, что пора рассказать о паттерне под названием Observer.

Observer - это паттерн который состоит из события, и подключенных методов объектов к этому событию. Также важно чтобы объекты были унаследованы от интерфейса который объявляет те самые методы которые можно подключить к событию.

Вот так он выглядит на картинке.

Экземпляр наблюдателя наследуется от Observer, а вот объекты у которых должен вызывать методы класс унаследованный от Observer, должны наследоваться от интерфейса IObjectObserver.

-2

Давайте теперь посмотрим где данный паттерн можно применить на практике.

Например вы разработчик какого то приложения, и нужно сделать чтобы какая то группа объектов постоянно проверяла какое то значение. Конечно можно в каждый объект внедрить if, но как сами понимаете это не особо будет быстро работать если будут спрашивать 100 объектов. И нам на помощь приходит паттерн Observer.

-3

И в Main.

-4

И при изменении значения I вызывается событие, которое уже проходит все подписавшиеся объекты, и вызывает у них метод UpdateObject.

Спасибо всем за прочтение. Надеюсь что я объяснил суть данного паттерна, и главное вы его поняли.