摘要: “对象创建”模式 通过“对象创建” 模式绕开new,来避免对象创建(new)过程中所导致的紧耦合(依赖具体类),从而支持对象创建的稳定。它是接口抽象之后的第一步工作。 典型模式 Factory Method Abstract Factory Prototype Builder 动机(Motivati 阅读全文
posted @ 2022-09-25 17:49 double64 阅读(38) 评论(0) 推荐(0)
摘要: “单一职责”模式: 在软件组件的设计中,如果责任划分的不清晰,使用继承得到的结果往往是随着需求的变化,子类急剧膨胀,同时充斥着重复代码,这时候的关键是划清责任。 典型模式 Decorator Bridge 动机(Motivation) 由于某些类型的固有的实现逻辑,使得它们具有两个变化的维度,乃至多 阅读全文
posted @ 2022-09-25 16:12 double64 阅读(67) 评论(0) 推荐(0)
摘要: 引用的对象不存在 #include <iostream> using namespace std; class A { public: A(int x) { this->x = x; } ~A() {}; int get_x() { return x; } private: int x; }; A& 阅读全文
posted @ 2022-09-25 15:23 double64 阅读(37) 评论(0) 推荐(0)
摘要: C++中,有3个常用的API包装器模式:代理模式,适配器模式,外观模式。它们都属于结构型模式,按包装器层和原始接口的差异递增。 示例: /*代理模式*/ #include <iostream> using namespace std; class Subject //Subject 定义了RealS 阅读全文
posted @ 2022-09-25 15:23 double64 阅读(28) 评论(0) 推荐(0)
摘要: 装饰模式,类图: 部件 (Component) 声明封装器和被封装对象的公用接口。 具体部件 (Concrete Component) 类是被封装对象所属的类。 它定义了基础行为, 但装饰类可以改变这些行为。 基础装饰 (Base Decorator) 类拥有一个指向被封装对象的引用成员变量。 该变 阅读全文
posted @ 2022-09-25 15:20 double64 阅读(34) 评论(0) 推荐(0)
摘要: “单一职责”模式: 在软件组件的设计中,如果责任划分的不清晰,使用继承得到的结果往往是随着需求的变化,子类急剧膨胀,同时充斥着重复代码,这时候的关键是划清责任。 典型模式 Decorator Bridge 动机(Motivation) 在某些情况下我们可能会“过度地使用继承来扩展对象的功能”,由于继 阅读全文
posted @ 2022-09-25 15:17 double64 阅读(23) 评论(0) 推荐(0)
摘要: “组件协作”模式: 现代软件专业分工之后的第一个结果是“框架与应用程序的划分”,“组件协作”模式通过晚期绑定,来实现框架与应用程序之间的松耦合,是二者之间协作时常用的模式。 典型模式 Template Method Observer / Event Strategy 动机(Motivation) 在 阅读全文
posted @ 2022-09-25 11:56 double64 阅读(46) 评论(0) 推荐(0)
摘要: “组件协作”模式: 现代软件专业分工之后的第一个结果是“框架与应用程序的划分”,“组件协作”模式通过晚期绑定,来实现框架与应用程序之间的松耦合,是二者之间协作时常用的模式。 典型模式 Template Method Observer / Event Strategy 模板方法模式 Template 阅读全文
posted @ 2022-09-25 10:29 double64 阅读(33) 评论(0) 推荐(0)
摘要: GOF-23 模式分类 从目的来看: 创建型(Creational)模式:将对象的部分创建工作延迟到子类或者其他对象,从而应对需求变化为对象创建时具体类型实现引来的冲击。 结构型(Structural)模式:通过类继承或者对象组合获得更灵活的结构,从而应对需求变化为对象的结构带来的冲击。 行为型(B 阅读全文
posted @ 2022-09-25 09:21 double64 阅读(40) 评论(0) 推荐(0)