HttpServlet
是一个包含所有实现方法的抽象类。为什么是抽象的?
我得到的最常见的答案是,限制HttpServlet
. 但是还有其他方法可以做到这一点,例如私有构造函数将限制实例化。
我可以理解他们遵循模板方法设计模式。如果某些方法是抽象的,用户最终将实现所有这些方法,即使他的业务逻辑不需要它们。
但是如果HttpServlet
不是抽象的,用户仍然可以扩展它并覆盖 require 方法。
至少按照“抽象”这个词的字典含义,拥有一个包含所有已实现方法的抽象类对我来说没有任何意义。
是的,抽象和具体方法的组合是可以的。
但是,如果您要创建一个类抽象,为什么不将子类必须重写的那些方法抽象化呢?或者可能根本不将其声明为抽象?
喜欢doGet()
还是doPost()
这种情况。