设计模式
谛听-
线上幽灵
展开
-
单例模式
#include <iostream>#include <vector>#include <algorithm>using namespace std;class C{private: C(){} // 构造函数私有,外部无法调用new static C *c; // 私有,外部无法直接访问;静态类型,静态构造函数...原创 2018-04-06 12:19:14 · 174 阅读 · 0 评论 -
策略模式
转自 https://www.cnblogs.com/jiese/p/3181099.htmlStrategy策略模式 作用:定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。 UML图: Strategy模式将逻辑(算法)封装到一个类(Context)里面,通过组合的方式将具体算法的实现在组合对象中实现,再通过委托的方式将抽象接口的...转载 2018-06-19 13:43:07 · 153 阅读 · 0 评论 -
工厂模式
转自:https://blog.csdn.net/jigetage/article/details/79605624 作了一点修改。工厂模式分为3种,即简单工厂模式、工厂方法模式、抽象工厂模式,其实大同小异,总结下来就是: 简单工厂模式:一个工厂,多个产品。产品需要有一个虚基类。通过传入参数,生成具体产品对象,并利用基类指针指向此对象。通过工厂获取此虚基类指针,通过运行时多态,调用子类实...转载 2018-06-19 19:57:37 · 215 阅读 · 0 评论 -
适配器模式
转自:https://www.cnblogs.com/jiese/p/3166396.htmlAdapter适配器模式 作用:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 分为类适配器模式和对象适配器模式。 系统的数据和行为都正确,但接口不符时,我们应该考虑使用适配器,目的是使控制范围之外的一个原有对象与某个接口...转载 2018-06-19 20:31:30 · 135 阅读 · 0 评论 -
装饰器模式
转自 https://www.cnblogs.com/wrbxdj/p/5259742.html装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。Component——定义一个对象接...转载 2019-06-25 20:53:09 · 126 阅读 · 0 评论 -
观察者模式
转自:https://www.cnblogs.com/carsonzhu/p/5770253.html定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。Subject(目标)——目标知道它的观察者。可以有任意多个观察者观察同一个目标;——提供注册和删除观察者对象的接口。Observer(观察者)——为那些在目标发生改变时需获得通知的...转载 2019-06-23 20:48:04 · 188 阅读 · 0 评论 -
桥接模式
转自https://blog.csdn.net/u012581604/article/details/72887029https://www.runoob.com/design-pattern/bridge-pattern.html将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式。...转载 2019-07-13 16:59:26 · 165 阅读 · 0 评论 -
命令模式
转自:https://www.runoob.com/design-pattern/command-pattern.htmlhttps://blog.csdn.net/luoyayun361/article/details/88163530https://www.cnblogs.com/lizhanwu/p/4435359.html命令模式(Command Pattern)是一种数据驱动的设...转载 2019-07-04 15:36:31 · 145 阅读 · 0 评论 -
阅读笔记:可扩展的任务流框架实现(一)
本文是 https://cloud.tencent.com/developer/article/1488591 一文的阅读笔记,原文作者:杨阳Conductor从读取 queue 中读取:1)时间类型 type,如 ‘TASK_INIT’, ‘TASK_NEXT’, ‘TASK_ERROR’2)task_id根据 type 和 task_id 获取下一步的 module 和 ha...原创 2019-08-19 22:03:00 · 498 阅读 · 0 评论