Fork me on GitHub

入门设计模式之模板

 

学习更多设计模式请参考:入门设计模式之汇总篇

 

模板方法:在一个抽象类中定义一部分的实现,其余的定义抽象方法迫使子类实现

 

相信看了上方的定义以后大家已经理解了模板模式,我们来看一下类图

 

 

抽象类定义了4个方法,其中operation是私有的,在这个方法里调用了其他三个方法,而方法3是自己实现的。方法1和2是强迫子类实现的。

ClassImpl1,ClassImpl2都继承了抽象类,并分别对方法1和2进行了不同的实现

 

我们来看代码

public  abstract class AbstractClass {
    public abstract void operation1();
    public abstract void operation2();
    public  void operation3(){
        System.out.println("do something....");
    }
    public  void operation(){
        operation1();
        operation2();
        operation3();
    }
}

public class ClassImpl1 extends AbstractClass {
    @Override
    public void operation1() {
        System.out.println("do something....");
    }
    @Override
    public void operation2() {
        System.out.println("do something....");
    }
}

public class ClassImpl2 extends AbstractClass {
    @Override
    public void operation1() {
        System.out.println("do something....");
    }
    @Override
    public void operation2() {
        System.out.println("do something....");
    }
}

 




本文出自https://zhixiang.org.cn/#/blog/read/3291b51c-90fd-459b-9912-0eee2ff083f4,转载请保留。

posted @ 2018-06-30 23:06  石玉军  阅读(187)  评论(0编辑  收藏  举报