行为型 模板模式

简介: 行为型 模板模式

模板模式(Template Pattern):一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。

模板模式

概要分析

把不变的接口提取到父类中,去除子类中的重复代码,子类只需要按照基类提供的接口做统一的处理。

使用场景

需要一系列的步骤或者过程实现业务,但是具体的每个步骤或者过程有一定的差异,例如我们的建造者模型中房屋的构造,需要对走廊,门,房间各个模块细节设计,就可以对流程做简单划分,给出接口,子类只需要按照模板接口实现具体细节执行,接口拼装不用关注。

源码Demo:

/*
模板模式:
  有没有发现这个是建造者模式的简化版本:将此版本升级就编程了建造者模式
  将一组行为升级成一个模板,从而实现了创建某一类产片的模板,这样就完成了一类产品的创建(这个产品依赖很对创建过程将此创建过程进行封装)
实现方法:
创建一个抽象接口类定义接口;
不同的子类去继承实现接口,然后在创建子类对象时,返回一个基类指针,然后使用基类指针去调用将此对象的创建过程进行封装的Make函数
*/
#include <iostream>
using namespace std;
class MakeCar
{
public:
  virtual void makeHead() = 0;
  virtual void makeBody() = 0;
  virtual void makeTail() = 0;
public:   
  //把一组行为 变成 一个模板(编程一个函数);调用一个函数就可以实现一组函数的调用
  void make()
  {
    makeHead();
    makeBody();
    makeTail();
  }
};
class MakeBus : public MakeCar
{
public:
  virtual void makeHead(){
    cout << "bus 组装 车头" << endl;
  }
  virtual void makeBody(){
    cout << "bus 组装 车身" << endl;
  }
  virtual void makeTail(){
    cout << "bus 组装 车尾" << endl;
  }
};
class MakeJeep : public MakeCar
{
public:
  virtual void makeHead(){
    cout << "Jeep 组装 车头" << endl;  
  }
  virtual void makeBody(){
    cout << "Jeep 组装 车身" << endl;
  }
  virtual void makeTail(){
    cout << "Jeep 组装 车尾" << endl;
  }
};
int main()
{
  MakeCar *bus = new MakeBus;
  bus->make();//此函数对创建过程进行了封装
  MakeCar *jeep = new MakeJeep;
  jeep->make();//此函数对创建过程进行了封装
  delete bus;
  delete jeep;
  // system("pause");
  return 0;
}
目录
相关文章
|
7月前
行为型 中介者模式
行为型 中介者模式
41 0
|
设计模式 存储 算法
行为型设计模式02-模板方法模式
行为型设计模式02-模板方法模式
55 0
|
6月前
|
设计模式 算法
行为型设计模式之模板模式
行为型设计模式之模板模式
|
7月前
|
设计模式 算法
模板模式
​ 如有错误或有补充,以及任何改进的意见,请留下您的高见 定义 模板模式是一种行为型设计模式,它在一个抽象类中公开定义了执行它的方法的方式/模板。子类可以按需重写方法实现,但调用将以抽象类中定义的方式进行。这种模式的核心思想是将一个算法的骨架定义在一个抽象类中,而将一些步骤延迟到子类中实现。 实现模板模式的步骤包括: 抽象出一个模板类,该类定义了执行算法的骨架。 抽象类中定义算法的骨架,骨架中的具体算法由子类实现。 子类按需重写方法实现,但调用将以抽象类中定义的方式进行。 使用final修饰模板方法,防止别人重写模板方法。 优点 提高了代码的可维护性和复用性。 减少了代码冗余,使算法的修
37 0
|
7月前
|
算法 数据安全/隐私保护
行为型 策略模式
行为型 策略模式
38 1
|
7月前
|
算法
行为型 访问者模式
行为型 访问者模式
61 0
|
7月前
|
设计模式 SQL 自然语言处理
行为型 解释器模式
行为型 解释器模式
48 0
|
设计模式 算法 Java
设计模式-行为型模式:模板方法模式
设计模式-行为型模式:模板方法模式
|
设计模式 算法 Java
模板模式【Java设计模式】
模板模式【Java设计模式】
52 0
|
设计模式 算法 Java
详解模板模式
1.概述 模板模式是一种常用的设计模式,它定义了一个操作中的算法的骨架,将某些步骤延迟到子类中实现。模板模式使得子类可以在不改变算法结构的情况下重新定义算法中的某些步骤。 模板模式中有两个角色:
142 0