模板设计模式

模板设计模式

  1. 目的
  • 将做N件事情的步骤中重复的部分抽离出来,形成父类,将特殊的步骤交由子类去实现,形成模板,
  1. 优缺点
  • 优:1、封装不变部分,扩展可变部分。 2、提取公共代码,便于维护。 3、行为由父类控制,子类实现。
  • 缺:每一个不同的实现都需要一个子类来实现,导致类的个数增加,使得系统更加庞大。
  1. 应用实例
    1、在造房子的时候,地基、走线、水管都一样,只有在建筑的后期才有加壁橱加栅栏等差异。
    2、多线程Thread就是模板设计模式中的父类,新的线程只要实现Thread中的run方法来实现特殊的步骤,start()方法则是通过本地方法start0()来调用run方法。
  2. 代码实现
public class TemplateMethod {
	//重复步骤
    public final void start(String message){ 
        System.out.println("###########");
        run(message);
        System.out.println("###########");
    }
    //特殊步骤
    /*protected void run(String message){

    }*/
    abstract void run();
    public static void main(String[] args) {
    	//子类实现父类中的特殊步骤
        TemplateMethod templateMethod = new TemplateMethod(){
            @Override
            protected void run(String message) {
                super.run(message);
                System.out.println("#" + message +"#");
            }
        };
		//子类实现父类中的特殊步骤
        TemplateMethod templateMethod1 = new TemplateMethod(){
            @Override
            protected void run(String message) {
                super.run(message);
                System.out.println("*" + message + "*");
            }
        };

        templateMethod.start("hello world");
        templateMethod1.start("hello world");
    }
}

  1. 运行结果
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值