Реалізація патерну - спостерігач - в простому коді java, блог тільки про java

Зауважте, що ви можете реєструвати багато спостерігачів на newsAgency і отримувати з їх допомогою оновлення. Наприклад, можна зареєструвати наблю-датель TVChannel або InternetNewsChannel для отримання оновлень від newsAgency.

Крім цього, у вас можуть бути інші Publisher (або будь-які інші типи об'єктів, що реалізують Observable>, що видають поновлення будь-якому спостерігачеві, Пожела-вшему зареєструвати себе для отримання новин. Ці спостерігачі можуть здійснювати перевірку типу Observable і обробляти поновлення відповідно до джерела.

Один істотний недолік такої реалізації паттерна «Спостерігач» в тому, що нам доводиться розширювати клас Observable. Це примушує вико-ти ієрархію класів, яка може бути небажаною. Оскільки ви не можете розширити відразу кілька класів у світі одиничного успадкування мови Jаvа. такий спосіб реалізації паттерна «Спостерігач» обмежує про-ектировании успадкування.

Ви не можете додати поведінку класу Observable до існуючого класу, який вже розширює інший базовий клас, ограни-чивая тим самим потенціал його багаторазового використання. Але не впадайте у відчай. Ви можете реалізувати патерн «Спостерігач» «вруч-ву», без використання внутрішніх інтерфейсів Observer і Observablе.