Переименование реализованных методов для шаблона Observer в Java

Я использую интерфейс класса Observable / Observer в Java для реализации шаблона наблюдателя. Интерфейс Observer требует перезаписи метода update (Observable o, Object arg).

Проблема в том, что я наблюдаю изрядное количество классов, и мой метод update () стал очень большим:

public class Foo implements Observer {
    ....

    public void update(Observable o, Object param) {
        if (o instanceof A) {
            // large chunk of code
            ...
        } else if (o instanceof B) {
            // large chunk of code
            ...
        }
            ...
        } else if (o instanceof H) {
            ...
        }
    }

}

Чтобы разделив метод, я думаю о расширении интерфейса Observer, например, интерфейсом AObserver, интерфейсом BObserver .. который требует перезаписи onAUpdate, onBUpdate .. соответственно. Этот метод также упростит определение наблюдаемых объектов Observables на основе интерфейсов, которые он реализует.

class Foo implements AObserver, BObserver {
    ....

    public void onAUpdate(Observable o, Object param) {
        if (o instanceof A) {
        // large chunk of code
        ...
    }

    public void onBUpdate(Observable o, Object param) {
        if (o instanceof B) {
        // large chunk of code
        ...
    }
}

Проблема в том, что если я унаследую Observer, мне все равно придется реализовать метод update (). Я не могу переименовать его в onAUpdate или другое имя по моему выбору.

Какие-нибудь советы? Спасибо.

5
задан Adeel Ansari 24 November 2010 в 07:02
поделиться