设计模式之模板方法模式(Template Method)

本文介绍了设计模式中的模板方法模式,重点讲述了其使用场合、案例分析,包括打开文件的操作,以及GoF模式定义和模式结构。模板方法模式提供了一个算法的骨架,允许在不改变算法结构的情况下,延迟部分步骤的实现,适用于稳定操作过程中存在变化的场景。
摘要由CSDN通过智能技术生成

前言

在学习侯捷老师的有关设计模式的课程(李建忠老师主讲)中,老师对23种设计模式的有自己的划分,如下。所以老师讲解是按照这种顺序讲解。
在这里插入图片描述
组件协作:
在这里插入图片描述

Template Method

1. 使用场合

在这里插入图片描述
这里圈出的几个关键字需要着重理解。归纳一下:

  • 在一个稳定操作的过程。就是说实现某个功能的步骤固定。
  • 在稳定的前提下有变化。就是说虽然步骤固定,但是其中有几步是不确定的,需要以后确定具体做什么。

2.案例一:打开一个文件

我们在打开一个文件时,总是会有以下几个步骤:

点击目录 -> 检查文件状态 -> 打开文件 -> (对文件操作) ->关闭文件 ->刷新文件界面

这里的对文件操作是加入新内容呢,还是删除某些行呢,是我们无法确定的。这就是稳定步骤下的变化。

下面模拟一下这个过程:

#include<iostream>
using namespace std;

class CDocument
{
   
public:
	void OnFileOpen(void);//抽象出的一般方法
protected:
	virtual void Serialize()//特殊的方法
	{
    cout << "默认serialize" << endl; }
};

void CDocument::OnFileOpen()
{
   
	cout << "dialog..." << endl;
	cout << "check file status..." << endl;
	cout << "open file..." << endl;
	Serialize();//这是特殊的方法,因客户不同而异
	cout << "close file..." << endl;
	cout << "updata all views..." << endl;
}

class CmyDoc :public CDocument
{
   
protected:
	virtual void
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值