14.模板模式

简介:  1模板模式的核心内容是: A:定义好抽象的接口类。 B:对于不同的情况不同实现。但是实现是要求和模板的定义的相同。 2模板模式的作用:说白了就是定义类模板,然后实现。 3模板模式具体描述 模板方法模式:模板方法模式准备一个抽象类, 将部分逻辑以具体方法以及具体构造子的形式实现, 然后声明一些抽象方法来迫使子类实现剩余的逻辑。


1模板模式的核心内容是:

A:定义好抽象的接口类。

B:对于不同的情况不同实现。但是实现是要求和模板的定义的相同。

2模板模式的作用:说白了就是定义类模板,然后实现。

3模板模式具体描述

模板方法模式:模板方法模式准备一个抽象类,

将部分逻辑以具体方法以及具体构造子的形式实现,

然后声明一些抽象方法来迫使子类实现剩余的逻辑。

不同的子类可以以不同的方式实现这些抽象方法,

从而对剩余的逻辑有不同的实现。先制定一个顶级逻辑框架,

而将逻辑的细节留给具体的子类去实现。 

 

但每个步骤针对不同的情况,女生从认识到得手的不变的步骤分为巧遇、打破僵局、展开追求、接吻、得手

都有不一样的做法,这就要看你随机应变啦(具体实现)

4模板模式类图

5.代码:

#include <iostream>

#include <vector>

#include <string>

using namespace std;

/*模板方法模式:模板方法模式准备一个抽象类,

将部分逻辑以具体方法以及具体构造子的形式实现,

然后声明一些抽象方法来迫使子类实现剩余的逻辑。

不同的子类可以以不同的方式实现这些抽象方法,

从而对剩余的逻辑有不同的实现。先制定一个顶级逻辑框架,

而将逻辑的细节留给具体的子类去实现。 

 

但每个步骤针对不同的情况,女生从认识到得手的不变的步骤分为巧遇、打破僵局、展开追求、接吻、得手

都有不一样的做法,这就要看你随机应变啦(具体实现)*/

class AbstractClass

{

public:

    void Show()

    {

        cout << "我是" << GetName() << endl;

    }

protected:

    virtual string GetName() = 0;

};

 

class Naruto : public AbstractClass

{

protected:

    virtual string GetName()

    {

        return "火影史上最帅的六代目---一鸣惊人naruto";

    }

};

 

class OnePice : public AbstractClass

{

protected:

    virtual string GetName()

    {

        return "我是无恶不做的大海贼---路飞";

    }

};

 

//客户端

int mainP13()

{

    Naruto* man = new Naruto();

    man->Show();

 

    OnePice* man2 = new OnePice();

    man2->Show();

 

    cin.get();

    return 0;

}

运行结果如下:

目录
相关文章
|
9月前
|
存储 JSON NoSQL
微服务——MongoDB的数据模型
MongoDB采用文档(document)作为最小存储单位,类似关系型数据库中的行,使用BSON(Binary-JSON)格式存储数据。BSON是JSON的二进制扩展,支持内嵌文档和数组,新增了如Date、BinData等特殊数据类型,具有轻量、高效、可遍历的特点,适合非结构化与结构化数据存储。其灵活性高,但空间利用率略低。BSON数据类型包括string、integer、boolean等基本类型及date、object id等扩展类型。
228 0
|
12月前
|
运维 监控 算法
解锁三维视频融合:重塑视觉体验与行业应用新格局
三维视频融合,解锁视觉新境界!实时视频嵌入三维空间,城市监控如临现场,工业运维精准高效,教育体验仿若亲为。跨越行业壁垒,革新视觉呈现!
327 8
|
人工智能 搜索推荐 数据挖掘
2024中国CRM排行榜
中国的 CRM 发展经历了从萌芽到快速成长的过程。早期主要依赖手工记录,20 世纪 50 年代商用计算机普及后,CRM 开始发挥作用。90 年代末,CRM 理念引入中国,市场由国外厂商主导。2004 年后,SaaS 模式兴起,但因企业接受度低、成本高而遇到挑战。2008 年,移动互联网推动 CRM 快速发展,2015 年 SaaS CRM 迎来爆发。如今,市场规模不断扩大,预计 2024 年将突破 250 亿元。主要品牌如销售易、Zoho、SAP 和微软 Dynamics 365 等,各具特色,满足不同企业需求。
2024中国CRM排行榜
|
机器学习/深度学习 数据采集 算法
监督学习工作流程:从数据准备到模型部署
本文详细介绍了监督学习的工作流程,涵盖数据准备、模型选择、训练、评估与优化、部署等关键步骤,并结合具体代码示例,帮助读者全面掌握监督学习在实际项目中的应用方法。从数据收集、清洗到特征工程,再到模型训练与评估,最后部署模型,每个环节都提供了详细的指导和实践建议。适合初学者和有一定基础的读者深入学习。
695 2
|
存储 人工智能 文字识别
利用AI能力平台实现档案馆纸质文件的智能化数字处理
在传统档案馆中,纸质文件管理面临诸多挑战。AI能力平台利用OCR技术,通过图像扫描、预处理、边界检测、文字与图片分离、文字识别及结果存储等步骤,实现高效数字化转型,大幅提升档案处理效率和准确性。
430 7
|
机器学习/深度学习 人工智能 自然语言处理
什么是深度学习
【10月更文挑战第23天】什么是深度学习
|
监控 API 数据安全/隐私保护
阿里云物联网平台入门体验
阿里云物联网平台是一个集成了设备管理、数据安全通信和消息订阅等能力的一体化平台。向下支持连接海量设备,采集设备数据上云;向上提供云端API,服务端可通过调用云端API将指令下发至设备端,实现远程控制。此篇文章按照官方入门实例操作下
671 0
阿里云物联网平台入门体验
|
存储 弹性计算 Apache
实验2 利用 NAS 搭建个人网盘| 学习笔记
快速学习实验2 利用 NAS 搭建个人网盘
实验2 利用 NAS 搭建个人网盘| 学习笔记
|
关系型数据库 MySQL Java
树莓派4B使用Docker部署SpringBoot项目——(二)使用docker安装mysql
树莓派4B使用Docker部署SpringBoot项目——(二)使用docker安装mysql
949 0
树莓派4B使用Docker部署SpringBoot项目——(二)使用docker安装mysql
|
网络协议 应用服务中间件 C#
ESFramework ——成熟的C#网络通信框架(跨平台)
ESFramework网络通信框架 是一套性能卓越、稳定可靠、强大易用的跨平台通信框架。也是.net平台首屈一指的成熟的C#网络通信框架。从最初的单纯的C#网络通信框架,历经10年,已经发展为支持包括安卓、IOS、Xamarin等多个平台的跨平台通信框架。
3427 1