设计模式
文章平均质量分 56
参考:
bilibili——李建忠老师
github——Jakub Vojvoda
马大大~
这个作者很懒,什么都没留下…
展开
-
Factory-Method
定义一个用于创建对象的接口(纯虚基类),让子类决定实例化哪一个类。Factory使得一个类的实例化延迟(目的:解耦, 手段:虚函数)到子类。注:自定义1个纯虚工厂基类,其中有个虚方法,它返回我们想要的具体对象,具体实现由具体的工厂子类(工厂子类继承纯虚工厂父类)实现。原创 2023-10-11 22:44:47 · 135 阅读 · 0 评论 -
Bridge
将抽象部分(业务功能)与实现部分(平台实现)分离,使它们都可以独立地变化。桥接模式具有结构目的并适用于对象,因此它处理对象的组合。delete ib;return 0;/**/Bridge模式使用“对象间的组合关系。原创 2023-10-09 20:07:17 · 53 阅读 · 0 评论 -
Decorator
动态(组合)地给一个对象增加一些额外的职责。就增加功能而言,Decorator模式比生成子类(继承)更为灵活(消除重复代码 & 减少子类个数)。public:// ...public:// ...class Decorator : public Component // is-a 为了完善接口规范private:// has-a 为了将来具体的实现public:// ...public:// ...public:// ...int main()原创 2023-10-08 22:29:10 · 642 阅读 · 0 评论 -
Observer
定义对象间的一种一对多(变化)的依赖关系,以便当一个对象(Subject)的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。原创 2023-10-01 14:11:42 · 70 阅读 · 0 评论 -
Strategy
定义一系列算法,把它们一个个封装起来,并且使它们可互相替换(变化)。该模式使得算法可独立于使用它的客户程序(稳定)而变化(扩展,子类化)CN_Tax,US_Tax,DE_Tax,FR_Tax //如果要添加一个国家,就需要做出更改public://如果只在中国使用,那么下面的代码也将被装载到代码段,但是不被使用。对应上面说到的“有时候支持不使用的算法也是一个性能负担”else if (tax == FR_Tax){ //相应的计算方法也要更改//...//....原创 2023-09-30 19:45:42 · 65 阅读 · 0 评论 -
TempleteMethod
定义一个操作中的算法的骨架 (稳定),而将一些步骤延迟 (变化)到子类中。Template Method使得子类可以不改变 (复用)一个算法的结构即可重定义(override 重写)该算法的某些特定步骤。在基类实现稳定的模板方法,变化的部分可以通过晚绑定(虚函数->函数指针)由子类实现(多态)。public:protected://变化的由子类override来实现 也可以不是纯虚public:int main()delete tm;return 0;/*原创 2023-09-30 14:32:24 · 188 阅读 · 0 评论 -
设计模式概述
高层模块(稳定)不应该依赖于低层模块(变化),二者都应该依赖于抽象(稳定)。抽象(稳定)不应该依赖于实现细节(变化),实现细节应该依赖于抽象(稳定)。原创 2023-09-30 14:28:31 · 214 阅读 · 0 评论