Избегание абстрактных методов без тела при реализации интерфейса - Java - PullRequest
2 голосов
/ 31 декабря 2011

Действительно раздражает, когда я хочу реализовать интерфейс для простого WindowListener, но единственный способ выполнить работу - это реализовать все методы, просто оставив все, кроме одного, без тела. Выглядит очень некрасиво и его можно избежать ..

Существует ли какой-то шаблон проектирования, который может избежать реализации без тела в этом случае?

Я попробовал шаблон «Стратегия / Политика», но в итоге получаю те же методы без тела, за исключением более ООП-метода.

Ответы [ 3 ]

6 голосов
/ 31 декабря 2011

Используйте WindowAdapter и переопределяйте только те методы, которые вам нужны. Подробнее об этом здесь .

2 голосов
/ 31 декабря 2011

В документах API WindowListener есть класс WindowAdapter, упомянутый как реализующий интерфейс:

Методы в этом классе пусты,Этот класс существует как удобство для создания объектов слушателя.

1 голос
/ 31 декабря 2011

Да, для слушателей часто есть AbstractXXXAdapter, в котором определены все методы (с пустыми телами).И затем, когда вы используете свой собственный слушатель, вы просто создаете его подкласс и реализуете то, что вам нужно.Некоторые фреймворки предоставляют это, другие - нет, поэтому вам, возможно, придется сделать это самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...