Избегайте раскрытия деталей реализации при реализации шаблона наблюдателя в Java?

Я перехожу на Java из C #, где события являются первоклассными гражданами, а обработчики событий могут быть частными методами. Сейчас я работаю над Java-проектом, где мне, конечно, нужно использовать шаблон Observer для реализации событий.

Поскольку Observer должен предоставить свои методы обратного вызова слушателя / обработчика классу Observable, похоже, что это раскрывает реализацию деталей Observer другим безразличным классам. Я могу установить доступ к этим методам на уровне пакета, что позволит скрыть эти детали реализации от потребителей моего пакета, но от этого все равно будет неприятный «запах» для меня.

Мне нужно просто стиснуть зубы и обнажиться, или есть способ получше?

7
задан HolySamosa 6 January 2012 в 21:00
поделиться