设计模式之模版方法模式

**

设计模式之模版方法模式

**
模版方法模式(Template Method Pattern)定义
Define the skeleton of an algorithm in an operation, deferring some steps to subclasses. Template Method lets subclasses redefine certain steps of an algorithm without changing the algorithm’s structure.
(定义一个操作中的算法等框架,而将一些步骤延迟到之类中。使得之类可以不改变一个算法的结构即可重定向该算法的某些特定步骤。)

图解
这里写图片描述

模块方法模式的优点

  • 封装不变部分,扩展可变部分
  • 提取公共部分代码,便于维护
  • 行为由父类控制,之类实现

    代码实现
    1创建一个父类,把所有公共抽象方法写在里面

 public abstract class AbstractClass {
    protected abstract void doSomething();
    protected abstract void doAnything();

    public void templateMethod(){
        /**
         * 调用基本方法,完成相关的逻辑
         * */
        this.doAnything();
        this.doSomething();
    }
}

2子类继承父类,完成方法复写

public class ConcreteClass1 extends AbstractClass{
    @Override
    protected void doSomething() {
        //业务逻辑处理
    }

    @Override
    protected void doAnything() {
        //业务逻辑处理
    }
}
public class ConcreteClass2 extends AbstractClass{
    @Override
    protected void doSomething() {
        //业务逻辑处理
    }

    @Override
    protected void doAnything() {
        //业务逻辑处理
    }
}

3代码调用

public class Client {
    @Test
    public void test(){
        AbstractClass class1 = new ConcreteClass1();
        AbstractClass class2 = new ConcreteClass2();

        //调用模版方法
        class1.templateMethod();
        class2.templateMethod();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值