码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式之模板模式

时间:2019-02-09 22:26:03      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:pre   span   make   模板模式   stat   rgs   设计模式   模板   ==   

    今天我要向大家介绍的设计模式叫做模板模式。模板模式定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤(摘自菜鸟教程)。模板模式在开发中使用的非常的频繁并且在spring中大量的使用了模板模式。

    1.定义一个抽象模板类:

//制作饮品
public abstract class MakeDrink {
    private void boilWater(){
        System.out.println("烧水");
    }
    protected abstract void machining(); //加工
    protected void encapsulation(){
        System.out.println("把做好的饮品倒进杯里");
    }
    
    //防止子类重写
    public final void getDrink(){
        boilWater();
        machining();
        encapsulation();
    }
    
}

2.定义具体的饮品类:

public class TeaDrink extends MakeDrink{

    @Override
    protected void machining() {
        System.out.println("加入茶叶");
    }

}

public class OffeeDrink  extends MakeDrink{

    @Override
    protected void machining() {
        System.out.println("加入咖啡豆");
    }

}

3.客户端调用:

public static void main(String[] args) {
        MakeDrink offeedrink = new OffeeDrink();
        offeedrink.getDrink();
        System.out.println("===========");
        MakeDrink teadrink = new TeaDrink();
        teadrink.getDrink();
    }



执行结果:
烧水
加入咖啡豆
把做好的饮品倒进杯里
===========
烧水
加入茶叶
把做好的饮品倒进杯里

使用模板模式可以实现代码的复用,但是每个不同的实现都需要一个子类会导致类的数量增加并且继承也使代码耦合在了一起。

设计模式之模板模式

标签:pre   span   make   模板模式   stat   rgs   设计模式   模板   ==   

原文地址:https://www.cnblogs.com/suyang-java/p/10358007.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!