在HttpServlet中没有任何抽象方法,它被声明为带有关键字抽象的抽象类。doGet和其他方法不是抽象的方法。那么,为什么HttpServlet被声明为没有任何抽象类的抽象类呢?
HttpServlet是模板方法模式的示例吗?
什么是模板模式和模板方法模式。有什么不同吗?
发布于 2015-03-24 02:25:09
HttpServlet被声明为抽象,因为您要对它进行子类化。就其本身而言,它不会提供多少有用的行为,因此您应该扩展类并为一个或多个方法(最常见的是doGet或doPost)定义自己的行为。
是的,HttpServlet是模板方法模式的一个例子。从doXXX方法调用HttpServlet中的service方法。换句话说,我们有一个模板方法(service),将它的一些处理推迟到子类中定义的各个方法。这些方法是在编译时选择的,因此这是模板方法模式的一个示例。
另请参阅:
https://stackoverflow.com/questions/29210190
复制相似问题