Является ли java.util.Observable используемым где угодно?
Поболтал с коллегой о дизайне Javas-библиотек. Я упомянул, что мне всегда было смешно, что классы AWT/Swing, которые по сути обеспечивают интерфейс Observable в виджетах пользовательского интерфейса, на самом деле называются "слушателями".
Затем он наполнил меня, указав, что было бы имя столкновения с java.util.Observer и java.util.Observable, которые были вокруг с JDK 1.0. Я никогда не слышал о них раньше.
В JavaDocs нет обычаев, а google/googlecode не так много, поэтому кто-нибудь знает, если они используются где-то в JDK? Кажется, они не получили никакой общей любви, поэтому, по-видимому, они не "популярны". Кто-нибудь нашел их полезными?
Ответы
Ответ 1
Observer
и Observable
по-прежнему используются во множестве кода мастера Eclipse для определения того, когда материал в коробках ввода изменяется, поэтому сам мастер может быть обновлен. Мне приходилось работать с некоторыми из этого материала, меняя его для собственных нужд..:)
Ответ 2
Они не используются, потому что их дизайн ошибочен: они не типа safe. Вы можете присоединить любой объект, который реализует Observer для любого Наблюдаемого, что может привести к незначительным ошибкам по линии.
Объединять их в безопасном интерфейсе типа примерно такая же работа, как реализация шаблона с нуля, поэтому я предполагаю, что последнее предпочтительнее в большинстве случаев.
Это одна из вещей, которые ошибочны в Java 1.0 из-за субоптимальных вариантов дизайна, сделанных под временным давлением (другие включают API Java 1.0 Collection API и java.util.Date), но из-за природы публичных API никогда не может (только устаревшие).