Tag: 私有构造函数

为什么HTTPServlet是一个抽象类? 任何function原因?

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