设计模式
文章平均质量分 63
我也要当昏君
这个作者很懒,什么都没留下…
展开
-
设计模式类图复习
设计模式类图复习目录设计模式类图复习抽象工厂模式抽象工厂模式的结构图装饰模式装饰模式结构图组合模式组合模式的结构图适配器模式类适配器模式结构图对象适配器类图观察者模式观察者模式结构图原型模式原型模式结构图建造者模式建造者模式结构图抽象工厂模式抽象工厂模式( Abstract Factory Patter):提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式的结构图装饰模式装饰模式( Decorator Pattern):动态地给一个对象增加一些额外的职责。就扩原创 2021-12-30 16:03:21 · 596 阅读 · 0 评论 -
设计模式之代理模式
设计模式之代理模式代理模式定义背景代码要点本质结构图代理模式定义为其他对象提供一种代理以控制对这对象的访问。 ——《设计模式》GoF背景在有些系统中,为了某些对象的纯粹性,只进行了功能相关封装(稳定点),后期添加了其他功能需要对该对象进行额外操作(变化点),为了隔离变化点(也就是不直接在稳定点进行修改,这样会让稳定点也变得不稳定),可以抽象一层代理层;代码class ISubject {public: virtual void Handle() = 0; virtual ~原创 2021-06-06 14:43:26 · 65 阅读 · 0 评论 -
设计模式之适配器模式
设计模式之适配器模式适配器模式定义背景代码要点本质结构图适配器模式定义将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 ——《设计模式》GoF背景日志系统,原来是通过写磁盘的方式进行存储,后来因为查询不便,需要额外添加往数据库写日志的功能(写文件和数据库并存);代码#include <string>#include <vector>using namespace std;class LogSy原创 2021-06-06 14:17:30 · 69 阅读 · 0 评论 -
设计模式之工厂
设计模式之工厂工厂方法模式背景要点本质结构图抽象工厂模式定义背景结构图代码工厂方法模式定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使得一个类的实例化延迟到子类。 ——《设计模式》GoF背景实现一个导出数据的接口,让客户选择数据的导出方式;要点解决创建过程比较复杂,希望对外隐藏这些细节;比如连接池,线程池;隐藏对象真实类型;对象创建会有很多参数来决定如何创建;创建对象有复杂的依赖关系;本质延迟到子类来选择实现;结构图抽象工厂模式原创 2021-06-06 13:50:44 · 64 阅读 · 0 评论 -
设计模式之装饰器模式
装饰器模式定义背景代码decorator1代码decorator2要点本质结构图定义动态地给一个对象增加一些额外的职责。就增加功能而言,装饰器模式比生成子类更为灵活。 ——《设计模式》GoF背景普通员工有销售奖金,累计奖金,部⻔经理除此之外还有团队奖金;后面可能会添加环比增⻓奖金,同时可能针对不同的职位产生不同的奖金组合;代码decorator1// 普通员工有销售奖金,累计奖金,部门经理除此之外还有团队奖金;后面可能会添加环比增长奖金,同时可能产生不同的奖金组合;// 销售奖金 = 当月销原创 2021-05-25 19:45:38 · 123 阅读 · 0 评论 -
设计模式之责任链模式
责任链模式定义背景代码chain_of_resp1代码chain_of_resp2要点本质结构图定义使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。 ——《设计模式》GoF背景请假流程,1天内需要主程序批准,3天内需要项目经理批准,3天以上需要老板批准;代码chain_of_resp1#include <string>class Context {public: std::s原创 2021-05-25 16:26:00 · 65 阅读 · 0 评论 -
设计模式之策略模式
策略模式定义背景代码strategy1代码strategy2要点本质结构图定义定义一系列算法,把它们一个个封装起来,并且使它们可互相替换。该模式使得算法可独立于使用它的客户程序而变化。 ——《设计模式》 GoF背景某商场节假日有固定促销活动,为了加大促销力度,现提升国庆节促销活动规格;代码strategy1在这里插入代码片enum VacationEnum { VAC_Spring, VAC_QiXi, VAC_Wuyi, VAC_GuoQing, //VAC_Sheng原创 2021-05-25 15:29:15 · 70 阅读 · 0 评论 -
设计模式之单例模式
设计模式之单例模式单例模式定义代码--版本1版本1的问题与解决技巧代码--版本2版本2的问题与解决技巧代码--版本3版本3的问题与解决技巧代码--版本4版本4的问题与解决技巧代码--版本5版本5的问题与解决技巧代码--版本6版本6的问题与解决技巧要点结构图单例模式定义保证一个类仅有一个实例,并提供一个该实例的全局访问点。 ——《设计模式》GoF代码–版本1// 内存栈区// 内存堆区// 常数区// 静态区 系统释放// 二进制代码区class Singleton {public:st原创 2021-05-25 10:30:08 · 99 阅读 · 0 评论 -
设计模式之模板方法
这里写自定义目录标题模板方法定义背景代码template1代码template2要点本质结构图模板方法定义定义一个操作中的算法的⻣架 ,而将一些步骤延迟到子类中.Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 ——《 设计模式》 GoF背景某个品牌动物园,有一套固定的表演流程,但是其中有若干个表演子流程受欢迎程度比较低,希望将这几个表演流程创新,以尝试迭代更新表演流程;代码template1#include <iostream>us原创 2021-05-20 10:08:31 · 79 阅读 · 0 评论 -
设计模式心法
这里写自定义目录标题设计模式内存模型:模式设计原则:什么情况下使用设计模式?如何找到设计模式?重构为什么要学习设计模式?学习设计模式的步骤设计模式设计模式是指在软件开发中,经过验证的,用于解决在特定环境下,重复出现的,特定问题的解决方案;内存模型:扩展:c语言当中的多态redisnginx模式设计原则:依赖倒置原则高层模块不应该依赖低层模块,二者都应该依赖抽象;抽象不应该依赖具体实现,具体实现应该依赖于抽象; 自动驾驶系统公司是高层,汽⻋生产厂商为低层,它们不应该互相依赖,原创 2021-05-19 17:26:57 · 108 阅读 · 0 评论 -
设计模式之观察者模式
这里写自定义目录标题观察者模式定义背景代码observer1代码observer2要点本质结构图观察者模式定义定义对象间的一种一对多(变化)的依赖关系,以便当一个对象(Subject)的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。 ——《 设计模式》 GoF背景气象站发布气象资料给数据中心,数据中心经过处理,将气象信息更新到两个不同的显示终端(A和B);代码observer1class DisplayA {public: void Show(float temper原创 2021-05-20 10:18:29 · 109 阅读 · 0 评论