首页 > 代码库 > 模板模式
模板模式
模板模式(Template Method)是较为常见的设计模式之一。
模板模式简言之就是将公共的方法抽取到超类中,需要子类要实现的方法设置为抽象方法,由子类去完成具体的实现。
模板方式的类图如下所示:
下面是一个模板模式的例子,首先是抽象类:
abstract public class AbstractClass { public void templateMethod() { doOperation1(); doOperation2(); hookMethod(); } protected abstract void doOperation1(); protected abstract void doOperation2(); public void hookMethod() { //private and final illegal }}
下面是子类的代码:
public class ConcreteClass extends AbstractClass { public void doOperation1() { System.out.println("doOperation1();"); } public void doOperation2() { System.out.println("doOperation2();"); } @Override public void hookMethod() { System.out.println("This is a re-implemented hook method."); }}
测试代码:
public class Test { public static void main(String [ ] args) { AbstractClass ac = new ConcreteClass(); ac.templateMethod(); } }输出:doOperation1();doOperation2();This is a re-implemented hook method.
上面例子中的hookMethod方法也被称为钩子方法。
模板方式中,子类可以实现父类中未实现的部分,但是却不能修改父类中的逻辑。
模板模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。