我正在查看servlet-api.jar源代码,并发现(令我极度困惑)javax.servlet.GenericServlet实现了javax.servlet.ServletConfig。
现在,我不夸耀自己是OOP学者,但我确实记得读过虽然OOP提供了继承的概念,但只有当孩子与父母有IS-A关系时才应用继承作为一个特征。
“GenericServlet IS-A ServletConfig”对我来说听起来不对。是否有人知道为什么要做出这样的设计决定? (除了将ServletConfig的方法和属性暴露给GenericServlet)?
答案 0 :(得分:1)
因为ServletConfig
是一个命名不佳的界面。我宁可称之为ConfigServlet
或ServletConfigurator
。
答案 1 :(得分:0)
实现和扩展是不同的。实现意味着GenericServlet必须实现ServletConfig中定义的接口。
即。 GenericServlet将具有ServletConfig接口,因此GenericServlet可由任何使用ServletConfig接口配置Servlet的东西配置。