设计模式
闰土少年与猹
这个作者很懒,什么都没留下…
展开
-
设计模式之模板模式
钩子方法源于设计模式中模板方法(Template Method)模式,模板方法模式的概念为:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。其主要分为两大类:模版方法和基本方法,而基本方法又分为:抽象方法(Abstract Method),具体方法(Concrete Method),钩子方法(Hook Method)...原创 2020-05-08 10:55:00 · 206 阅读 · 0 评论 -
设计模式原则
目录一、开闭原则1、定义2、扩展定义3、实现方法二、里式替换原则1、定义2、实现方法三、依赖倒置原则1、定义2、实现四、单一职责原则1、定义2、实现五、接口隔离原则1、定义2、实现2.1优点2.2实现方法六、迪米特法则1、定义2、实现七、合成复用原则1、定义2、实现一、开闭原则1、定义...原创 2020-02-05 12:41:38 · 615 阅读 · 0 评论 -
设计模式之(结构模式)组合模式
在现实生活中,存在很多“部分-整体”的关系,例如,大学中的部门与学院、总公司中的部门与分公司、学习用品中的书与书包、生活用品中的衣月艮与衣柜以及厨房中的锅碗瓢盆等。在软件开发中也是这样,例如,文件系统中的文件与文件夹、窗体程序中的简单控件与容器控件等。对这些简单对象与复合对象的处理,如果用组合模式来实现会很方便。组合模式的定义与特点组合(Composite)模式的定义:有时又叫作部分-整体...原创 2019-12-19 13:14:52 · 136 阅读 · 0 评论 -
设计模式示例(C++)
http://m.biancheng.net/view/1373.html转载 2019-12-19 13:12:26 · 155 阅读 · 0 评论 -
设计模式之观察者模式
观察者模式:定义了一种一对多的依赖关系,让多个观察者对象同时监听某一主题对象,在主题对象的状态发生变化时,会通知所有的观察者。观察者模式角色如下:抽象主题(Subject)角色:抽象主题角色提供维护一个观察者对象集合的操作方法,对集合的增加、删除等。具体主题(ConcreteSubject)角色:将有关状态存入具体的观察者对象;在具体主题的内部状态改变时,给所有登记过的观察者发通知。具...原创 2019-12-10 00:23:14 · 123 阅读 · 0 评论 -
设计模式之命令模式
#include <iostream>#include <vector>using namespace std;class Reciever{public: void Action() { cout << "Do action !!" <<endl; }};class Icommand{...原创 2019-12-10 00:20:40 · 94 阅读 · 0 评论 -
设计模式(结构型)之适配器模式
将一个接口转换成客户希望的另一个接口使得接口不兼容的那些类可以一起工作一、缘由适配器模式是我个人使用频率比较高的模式,十分简单实用。在许多情况下,我们自己的系统A,要使用既有对象B的接口,但无奈我们的既有系统A和B接口不兼容,这时候适配器可以帮我们解决这个问题。二、实现假设现在有一个函数static void request(Target *target){targe...原创 2019-12-09 23:58:43 · 135 阅读 · 0 评论 -
设计模式(行为型)之模板模式
一、桥接模式与抽象类 通常在“既要约束子类的行为,又要为子类提供公共功能”的时候使用抽象类。 • 按照这个原则来思考模板方法模式的实现,模板方法模式需要固定定义算法的骨架, 这个骨架应该只有一份,算是一个公共的行为,但是里面具体的步骤的实现又可能是 各不相同的,恰好符合选择抽象类的原则。 • 变与不变 • 程序设计的一个很重要的思考点就是“变与不变”,也就是分析...原创 2019-11-06 20:57:12 · 105 阅读 · 0 评论 -
设计模式(结构型)之桥接模式
目录一、桥接模式的思想二、使用案例1、不使用设计模式实现1.1 代码示例1.2 缺点2、采用桥接设计模式2.1、类图结构2.2、代码示例一、桥接模式的思想• 现需要提供大中小3种型号的画笔,能够绘制5种不同颜色,如果使用蜡笔,我们需要准备 3*5=15支蜡笔,也就是说必须准备15个具体的蜡笔类。而如果使用毛笔的话,只需要3种型 号的毛笔,外加5个...原创 2019-11-01 09:03:06 · 379 阅读 · 0 评论