Это более общий вопрос: у меня довольно сложная таблица файлов на качелях (модель данных не тривиальна), и когда пользователь нажимает на запись, необходимо изменить два других компонента представления - представление статистики файлов,и просмотр содержимого файла - оба на одном экране.
Один из вариантов заключается в том, чтобы все определения классов этих компонентов были в одном файле, а затем иметь ссылки друг на друга - но это приведет к очень грязному коду.
Другой вариант, который я мог бы придумать, - это передать статистику и компоненты контента объекту таблицы и заставить его использовать его, но это сделает таблицу не пригодной для повторного использования где-либо еще.
Я уверен, что есть лучший способ сделать это - что бы вы порекомендовали сделать?
Вариант 1:
class MyPanel extends JPanel{
private MyTable table;
private MyFileViewer fv;
private MyFileStats stats;
class MyTable {
addMouseListener({ ... fv.update(); stats.update(); })
}
class MyFileViewer{...}
class MyFileStats{...}
}
Варианты 2:
class MyTable {
MyTable(MyFileViewer fv, MyFileStats stats) { ...
addMouseListener({fv.update, stats.update ... }
}
}