В настоящее время я пишу программу, в которой много дублирования кода между аспектом GUI и аспектом хранения данных, и мне было интересно, соответствует ли мое предлагаемое решение приемлемым принципам проектирования.
По сути, я имеюнекоторые объекты данных, которые имеют список, содержащий некоторую дополнительную информацию.Затем графический интерфейс отображает объект и JList, который отображает всю информацию в списке объекта данных.В графическом интерфейсе пользователи могут добавлять или удалять информацию в списке объектов, и это визуально отражается в JList.
Однако это приводит к тому, что мне приходится поддерживать JList GUI и список объектов отдельно:
private void addInformation(String s) {
this.listmodel.addElement(s);
this.dataObject.getList().add(s);
}
(Очевидно, это очень простой пример, но вы поняли идею).Это также означает, что я занимаю вдвое больше памяти, удерживая оба списка.Было бы приемлемо для меня создать класс, который бы реализовывал интерфейсы ListModel и List, а затем нужно было бы обновить только один комбинированный list / listmodel?Я все еще учусь в универе и хочу сделать этот проект как можно лучше с точки зрения удобства сопровождения другими людьми и соблюдения передового опыта.