2009-12-09 3 views
1

Я просматривал исходный код сервлета-api.jar и узнал (к моему полному недоумению), что javax.servlet.GenericServlet реализует javax.servlet.ServletConfig.Зачем нужно javax.servlet.GenericServlet реализовать javax.servlet.ServletConfig?

Теперь я не похвастаюсь тем, что являюсь ученым ООП, но я помню, что читал, что хотя ООП обеспечивает концепцию наследования, наследование как функция должно применяться только тогда, когда у ребенка есть отношение IS-A с родитель.

«GenericServlet IS-A ServletConfig» звучит не так. Кто-нибудь знает, почему было принято такое дизайнерское решение? (Помимо раскрытия методов и атрибутов ServletConfig для GenericServlet)?

ответ

0

орудия и проемы различны. реализует означает, что GenericServlet должен реализовать интерфейс, определенный в ServletConfig.

ie. GenericServlet будет иметь интерфейс ServletConfig, поэтому GenericServlet будет настраиваться на все, что использует интерфейс ServletConfig для настройки сервлета.

+0

Я бы предположил, что GenericServlet будет снабжен экземпляром ServletConfig, что означает, что «GenericServlet HAS-A ServletConfig». Это звучит лучше для меня. –

1

Потому что ServletConfig - это плохо названный интерфейс. Возможно, я бы назвал его ConfigServlet или ServletConfigurator.

+0

Мне нравится ваше первое предложение: 'ConfigServlet'. –