0
Каков наилучший способ избежать циклических зависимостей в этом очень упрощенном примере? Я хотел бы избежать вставки SelectionChangedListener, поскольку это довольно большой/сложный класс.Избегание циклических зависимостей при использовании прослушивателей
class SomeGui extends Dialog {
TreeViewer someWidget;
SelectionChangedListener someListener;
private void someMethod(){
someListener = new SelectionChangedListener(this);
someWidget.addSelectionChangedListener(someListener);
}
public void doSomething(){
}
}
class SelectionChangedListener implements ISelectionChangedListener{
SomeGui reference;
public SelectionChangedListener(SomeGui reference) {
this.reference = reference;
}
@Override
public void selectionChanged(SelectionChangedEvent event) {
reference.doSomething();
}
}
Вы можете увидеть пример, который я создал здесь: http://sourceforge.net/p/tus/code/HEAD/tree/tjacobs/io/DataFetche r.java FetcherListener - это статический интерфейс. Поскольку интерфейс является общедоступным, любой другой класс может реализовать это и зарегистрироваться для обновлений из DataFetcher. – ControlAltDel