设计模式模板方法

模板方法模式


设计原则:破坏里氏替换,体现功能复用
常用场景:一批子类的功能有可提取的公共算法骨架
使用概率:80%
复杂度:中低
变化点:算法骨架内各个步骤的具体实现
选择关键点:算法骨架是否牢固
逆鳞:无



主要思想
定义一个抽象类,在抽象类中定义一个主方法,比如是某个算法,或者要做的某件事,
再定义一些抽象方法,这些抽象方法会在主方法中调用,这样主方法实际就相当于模板,其规定好了要做的这件事的所有步骤,
而其中部分步骤则交给实现类去做



比如策略模式中我们的加减算法,如果传入的是字符串


public abstract class MyAbstractCalculate {

    public int calculated(String s1, String s2) {
        int c1 = Integer.parseInt(s1);
        int c2 = Integer.parseInt(s2);
        return calculated(c1, c2);
    }


    public abstract int calculated(int c1, int c2);
}


public class MyPlus extends MyAbstractCalculate {
    @Override
    public int calculated(int c1, int c2) {
        return c1+c2;
    }
}


public class MyMinus extends MyAbstractCalculate {
    @Override
    public int calculated(int c1, int c2) {
        return c1-c2;
    }
}

 

posted on 2017-11-03 16:45  zjj911  阅读(157)  评论(0编辑  收藏  举报