文章分类 -  二、设计模式

摘要:1、模式主要思想: 为其他对象提供一种代理以控制(隔离,使用接口)对这个对象的访问。 2、结构: 3、代码 class ISubject{ public: virtual void process(); }; class RealSubject : public ISubject{ public: 阅读全文
posted @ 2021-02-05 22:40 zwj鹿港小镇 阅读(160) 评论(0) 推荐(0) 编辑
摘要:1、模式主要思想: 将一个类的接口转换成客户希望的另一个接口,Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 适配器分为(1)类适配器模式,(2)对象适配器模式。 2、结构: 图1:类模式适配器 图2:对象模式适配器 3、代码 Adapter.h: #ifndef _A 阅读全文
posted @ 2021-02-04 23:35 zwj鹿港小镇 阅读(197) 评论(0) 推荐(0) 编辑
摘要:1、模式主要思想: 提供一个接口,让该接口负责创建一系列“相关或者相互依赖的对象”,无需指定它们具体的类。 2、结构: 3、代码: #include <string> // 实现导出数据的接口, 导出数据的格式包含 xml,json,文本格式txt 后面可能扩展excel格式csv class IE 阅读全文
posted @ 2021-02-04 22:59 zwj鹿港小镇 阅读(142) 评论(0) 推荐(0) 编辑
摘要:1、模式主要思想: 定义一系列算法,把它们一个个封装起来,并且使它们可以互相替换(变化),该模式使得算法可以独立于使用它的客户程序(稳定)而变化(扩展,子类化) 2.结构图: 3.范例和代码: 计算税收时,每个国家的税收算法是不一样的,比如现在有要计算三个国家的税收,一般情况,不用设计模式时的代码: 阅读全文
posted @ 2021-02-03 22:51 zwj鹿港小镇 阅读(181) 评论(0) 推荐(0) 编辑
摘要:1、模式主要思想: 定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使得一个类的实例化延迟(目的:解耦。手段:虚函数)到子类 2、结构: 3、案例和代码 实现导出数据的接口, 导出数据的格式包含 xml,json,文本格式txt 后面可能扩展excel格式csv。 阅读全文
posted @ 2021-02-03 22:49 zwj鹿港小镇 阅读(179) 评论(0) 推荐(0) 编辑
摘要:1、模式主要思想: 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这些对象连接成一条链,并沿着这条链传递请求,知道有一个对象处理它为止。 2、结构: 3、代码: #include "stdafx.h" #include <iostream> #include <windo 阅读全文
posted @ 2021-02-02 23:13 zwj鹿港小镇 阅读(128) 评论(0) 推荐(0) 编辑
摘要:1、模式主要思想: 定义对象间的⼀种⼀对多(变化)的依赖关系,以便当⼀个对象(Subject)的状态发⽣改变时,所有 依赖于它的对象都得到通知并⾃动更新。 本质:触发联动。 2、结构: 3、案例: 气象站发布气象资料给数据中心,数据中心经过处理,将气象信息更新到两个不同的显示终端(A 和B...可能 阅读全文
posted @ 2021-01-31 15:47 zwj鹿港小镇 阅读(459) 评论(0) 推荐(0) 编辑
摘要:1、模板方法模式的主要思想: 定义一个操作中的算法骨架(稳定),将一些特定步骤(变化)的具体实现、延迟到子类。使得子类可以在不改变(复用)算法流程的情况下,通过不同的子类、来实现“定制”(override重写)流程中的特定的步骤。 本质通过固定算法⻣架来约束⼦类的行为; 2、设计结构如下图: 3、代 阅读全文
posted @ 2021-01-31 12:40 zwj鹿港小镇 阅读(193) 评论(0) 推荐(0) 编辑
摘要:1、总体来说设计模式分为三大类: (1)创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 (2)结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 (3)行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、 阅读全文
posted @ 2021-01-31 00:57 zwj鹿港小镇 阅读(142) 评论(0) 推荐(0) 编辑
摘要:1、模式主要思想: 保证一个类仅有一个实例,并提供一个该实例的全局访问点。 2、以下为各个版本的单例模式及存在的问题 (1)第一版: 1 class Singleton 2 { 3 public: 4 static Singleton * GetInstance() 5 { 6 if (_insta 阅读全文
posted @ 2019-06-04 10:21 zwj鹿港小镇 阅读(183) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示