![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Design Patterns CPP
文章平均质量分 82
「已注销」
这个作者很懒,什么都没留下…
展开
-
5-观察者模式(Observer)
定义对象之间一对多(变化)的依赖关系,以便当一个对象(Subject)的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。文件分割程序,将大文件分割成若干个小文件分割进度条实时显示【依赖关系-通知-自动更新】/* 未使用 观察者模式 */ //MainForm1.cpp class MainForm : public Form //主窗口 {//文本框-文件路径 TextBox * txtFileNumber;原创 2023-04-21 20:35:34 · 86 阅读 · 0 评论 -
4-策略模式(Strategy)
定义一系列算法,把它们一个个封装起来,并且使它们可互相替换(变化)。该模式使得算法可独立于使用它的客户程序(稳定)而变化(扩展,子类化)。用拓展的方式,应对未来的算法层面的需求变化实例:跨国电商 - 税务计算业务变化 - 时间轴 - 增加其他国家的税务计算方式//结构化软件设计 - 面向过程 enum TaxBase {CN_Tax , US_Tax , DE_Tax , FR_Tax //业务更改 };public ://业务更改 //FR******** } /*原创 2023-04-19 20:06:59 · 37 阅读 · 0 评论 -
3-模板方法(Template-Method)
定义一个操作中的算法的骨架(稳定),而将一些步骤延迟(变化)到子类中。Template Method使得子类可以不改变(复用)一个算法的结构即可重定义(override重写)该算法的某些特定步骤。设计模式中最核心的特点:稳定中有变化设计模式的前提是必须有至少一个稳定点,没有稳定点,设计模式没有作用。设计模式最大的作用,就是 在变化和稳定之间 寻找隔离点,进行分离,从而来管理变化。“把变化像小兔子一样,关到小笼子里,让它在小笼子里面随便跳,而不至于把房间给污染掉”原创 2023-04-18 20:26:53 · 42 阅读 · 0 评论 -
2-设计模式分类
从不同角度去看待同一个问题,以上技法其实是对同一个问题的不同处理方式。创建型(Creational)模式。结构型(Structural)模式。行为型(Behavioral)模式。将对象的部分创建工作。原创 2023-04-18 20:20:30 · 52 阅读 · 0 评论 -
1-面向对象设计原则
子类继承自父类时,不能导致父类的方法在子类里不能调用,这会违背了替换原则。高层模块依赖低层模块,一旦低层模块有变化,则高层模块也要一并修改。高层模块的设计应该是稳定的,不能因为低层模块发生变化就变得不稳定。只给自己用的方法定义成private,只给子类用的方法定义成protected,只有给客户用的方法才定义成public。依赖倒置原则可用于检验大多数设计模式,解决依赖倒置的方法就是设计好抽象类,使其尽量稳定,以隔离变化。高层模块抽象的设计不能与具体的实现细节绑定,不能引入依赖,否则就不稳定。原创 2023-04-18 20:12:34 · 38 阅读 · 0 评论 -
0-设计模式简介
每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动。可复用面向对象软件设计的基础》可复用:是设计模式的目标面向对象 是实现 “可复用” 具体的方法从面向对象谈起底层思维:向下,如何把握机器底层从微观理解对象构造语言构造编译转换内存模型运行时的机制抽象思维:向上,如何将我们周围的世界抽象为代码面向对象组件封装设计模式架构模式。原创 2023-04-18 20:11:01 · 63 阅读 · 1 评论