Как избежать дублирования кода между двумя похожими классами, расширяющими разные

Я работаю над проектом Java, где мне нужно реализовать текстовые поля с заполнителями для окна входа в систему. Для этого я взял курс из этого блога для своего JTextField и создал второй класс, который в основном такой же, он просто расширяет JPasswordField вместо JTextField.

Как уже говорилось, эти классы, конечно, почти одинаковы, просто один расширяет JTextField, а другой расширяет JPasswordField. Я искал способ исправить это дублирование кода, но не могу найти что-то, что работает, но я уверен, что это возможно.

Я думал об абстрактном классе, но вы не можете расширить два класса, так что это кажется невозможным...

Любые идеи?


person PLPeeters    schedule 10.04.2014    source источник


Ответы (1)


В этом случае вы можете уменьшить дублирование кода, используя Шаблон делегирования. Поместите во внешний класс общую логику и включите ее экземпляр в свой собственный JPasswordField/JTextField.

person gizmo    schedule 10.04.2014