![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
Jacky_Dai
自信开朗,充满活力
展开
-
[设计模式][c++] 命令模式(command)
[code="c++"]class Command : public eastl::intrusive_list_node{ NON_COPYABLE(Command)public: Command(const Message* message); virtual ~Command(); BlazeRpcError run(); vi...原创 2017-06-28 21:00:30 · 156 阅读 · 0 评论 -
设计模式六大原则(1):单一职责原则
转自[url]http://blog.csdn.net/zhengzhb/article/details/7278174[/url][b]定义:[/b]不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。[b]问题由来:[/b]类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。...原创 2016-06-23 15:09:44 · 85 阅读 · 0 评论 -
面向对象设计的基本原则
参考[url]http://www.cnblogs.com/cavingdeep/archive/2004/10/28/208956.html[/url][url]http://www.cnblogs.com/seacryfly/archive/2011/12/29/seacryfly.html[/url][url]http://www.cnblogs.com/sunflower627...原创 2016-06-23 14:26:51 · 89 阅读 · 0 评论 -
[行为型模式]迭代器模式的理解
[img]https://api5.yunpan.360.cn/intf.php?method=Share.getPublicThumbByNid&qid=108635719&nid=13770720612900372&size=800_600&devtype=web&v=1.0.1&rtick=14676146423468&share_qid=108635719&sign=e962522e86f...原创 2016-06-22 17:23:16 · 131 阅读 · 0 评论 -
[行为型模式]命令模式的理解
[img]https://api5.yunpan.360.cn/intf.php?method=Share.getPublicThumbByNid&qid=108635719&nid=13770720612900291&size=800_600&devtype=web&v=1.0.1&rtick=14676146428611&share_qid=108635719&sign=df4c1667350...原创 2016-06-22 13:00:02 · 83 阅读 · 0 评论 -
[行为型模式] 模板方法模式的理解
[img]https://api5.yunpan.360.cn/intf.php?method=Share.getPublicThumbByNid&qid=108635719&nid=13770720612900694&size=800_600&devtype=web&v=1.0.1&rtick=14676146421155&share_qid=108635719&sign=72dd842582a...原创 2016-06-14 15:03:24 · 92 阅读 · 0 评论 -
[行为型模式] 解释器模式的理解
[img]https://api5.yunpan.360.cn/intf.php?method=Share.getPublicThumbByNid&qid=108635719&nid=13770720612900337&size=800_600&devtype=web&v=1.0.1&rtick=14676146422320&share_qid=108635719&sign=03963d0dcc5...原创 2016-06-13 17:05:15 · 103 阅读 · 0 评论 -
[结构型模式] 享元模式的理解
[img]https://api5.yunpan.360.cn/intf.php?method=Share.getPublicThumbByNid&qid=108635719&nid=13770720612900268&size=800_600&devtype=web&v=1.0.1&rtick=14676152633757&share_qid=108635719&sign=e9b7100c3f2...原创 2016-06-03 14:10:30 · 129 阅读 · 0 评论 -
[结构型模式] head first 设计模式之外观模式(Facade)
1 目的 [color=red]为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式的意图是简化接口。[/color]2 优点 [color=red]a) 它对客户屏蔽子系统组件,因而减少了客户处理对的数目并使得子系统使用起来更加方便。 b) 它实现了子系统与客户之间的松耦合关系,而子系统内部的功能组件往...原创 2016-06-01 11:36:01 · 79 阅读 · 0 评论 -
设计模式六大原则(2):里氏替换原则
转自[url]http://blog.csdn.net/zhengzhb/article/details/7281833[/url] 肯定有不少人跟我刚看到这项原则的时候一样,对这个原则的名字充满疑惑。其实原因就是这项原则最早是在1988年,由麻省理工学院的一位姓里的女士(Barbara Liskov)提出来的。 [b]定义1:[/b]如果对每一个类型为 T1的对象 o...原创 2016-06-23 15:24:35 · 97 阅读 · 0 评论 -
设计模式六大原则(3):依赖倒置原则
转自[url]http://blog.csdn.net/zhengzhb/article/details/7289269[/url] [b]定义:[/b]高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。 [b]问题由来:[/b]类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模...原创 2016-06-23 15:30:16 · 98 阅读 · 0 评论 -
设计模式六大原则(4):接口隔离原则
转自[url]http://blog.csdn.net/zhengzhb/article/details/7296921[/url] [b]定义:[/b]客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。 [b]问题由来:[/b]类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须...原创 2016-06-23 15:37:49 · 78 阅读 · 0 评论 -
[转]C++设计模式——单例模式
原文出处[url]http://www.jellythink.com/archives/82[/url]问题描述现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中,会专门有一个日志模块,负责写日志,由于在系统的任何地方,我们都有可能要调用日志模块中的函数,进行写日志。那么,如何构造一个日志模块的实例呢?难道,每次new一个日志模块实例...原创 2015-08-17 16:26:34 · 78 阅读 · 0 评论 -
应用 Command 模式进行流水号管理的最佳实践
转自[url]http://www.ibm.com/developerworks/cn/java/j-lo-serialNo/[/url] 本文介绍了一种基于自定义格式字符串, 应用 Command 模式的流水号管理功能,可以让用户灵活设定流水号的格式,具备非常好的灵活性和可扩展性。[align=center][b]摘要[/b][/align] 流水号管理作...原创 2016-07-10 18:02:57 · 181 阅读 · 0 评论 -
[行为型模式] 观察者模式的理解
[img]https://api5.yunpan.360.cn/intf.php?method=Share.getPublicThumbByNid&qid=108635719&nid=13770720612900404&size=800_600&devtype=web&v=1.0.1&rtick=14676146421852&share_qid=108635719&sign=5210d831b39...原创 2016-07-04 14:47:48 · 88 阅读 · 0 评论 -
[行为型模式] 中介者模式的理解
[img]https://api5.yunpan.360.cn/intf.php?method=Share.getPublicThumbByNid&qid=108635719&nid=13770720612900357&size=800_600&devtype=web&v=1.0.1&rtick=14676146429780&share_qid=108635719&sign=f3a44f39417...原创 2016-07-04 14:46:18 · 98 阅读 · 0 评论 -
[行为型模式] 备忘录模式的理解
[img]https://api5.yunpan.360.cn/intf.php?method=Share.getPublicThumbByNid&qid=108635719&nid=13770720612900431&size=800_600&devtype=web&v=1.0.1&rtick=14676146429127&share_qid=108635719&sign=35a231a5a11...原创 2016-07-04 14:45:13 · 120 阅读 · 0 评论 -
[行为型模式] 责任链模式的理解
[img]https://api5.yunpan.360.cn/intf.php?method=Share.getPublicThumbByNid&qid=108635719&nid=13770720612900311&size=800_600&devtype=web&v=1.0.1&rtick=14676146422397&share_qid=108635719&sign=95e0767d82a...原创 2016-06-24 11:19:32 · 139 阅读 · 0 评论 -
设计模式六大原则(6):开闭原则
转自[url]http://blog.csdn.net/zhengzhb/article/details/7296944[/url] [b]定义:[/b]一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。 [b]问题由来:[/b]在软件的生命周期内,因为变化、升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也可能会使我们不得不对整个功能进行...原创 2016-06-24 09:04:13 · 85 阅读 · 0 评论 -
设计模式六大原则(5):迪米特法则
转自[url]http://blog.csdn.net/zhengzhb/article/details/7296930[/url] [b]定义:[/b]一个对象应该对其他对象保持最少的了解。 [b]问题由来:[/b]类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。 [b]解决方案:[/b]尽量降低类与类之间的耦合。 ...原创 2016-06-24 09:01:13 · 95 阅读 · 0 评论 -
[结构型模式] 外观模式的理解
[img]http://api5.yunpan.360.cn/intf.php?method=File.getThumbByNid&qid=108635719&nid=13770720602900226&size=800_600&devtype=web&v=1.0.1&rtick=14661285751544&sign=7952cc5af692a6887e34f7e752679885&[/img]...原创 2016-05-20 15:50:13 · 93 阅读 · 0 评论 -
[结构型模式] 装饰者模式的理解
[img]http://api5.yunpan.360.cn/intf.php?method=File.getThumbByNid&qid=108635719&nid=13770720602900135&size=800_600&devtype=web&v=1.0.1&rtick=14661274237039&sign=67fd31b391787cd8d039cb8df7c378ab&[/img]...原创 2016-05-17 10:30:30 · 125 阅读 · 0 评论 -
[结构型模式] 组合模式的理解
[img]http://api5.yunpan.360.cn/intf.php?method=File.getThumbByNid&qid=108635719&nid=13770720602900189&size=800_600&devtype=web&v=1.0.1&rtick=14661274232904&sign=a6d71dec6fdfbffe90b9be688816ccac&[/img]...原创 2016-05-16 13:41:34 · 121 阅读 · 0 评论 -
[转]23种设计模式的基本介绍
[size=large][b]创建型模式(Creational Pattern)[/b][/size][size=medium][color=blue]1、 抽象工厂模式(Abstract Factory Pattern)介绍提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。2、 建造者模式(Builder Pattern)介绍将一个复杂对象的构建与它的表示分...原创 2016-04-28 11:10:50 · 82 阅读 · 0 评论 -
[结构型模式] head first 设计模式之适配器模式(Adapter)
1 定义: [color=red]将一个类的接口转换成客户希望的另外一个接口。Apapter模式是的原本由于接口不兼容而不能一起工作的那些类可以一起工作。实际上有两种适配器,对象适配器和类适配器。[/color] 属于结构型模式,需要有Adaptee(被适配者)和Adaptor(适配器)两个身份. 比如说,我们买的欧版手机,一般都需要一个适配器转换成国内的接口,这就是实例。...原创 2013-08-22 10:39:59 · 157 阅读 · 0 评论 -
[行为模式] head first 设计模式之命令模式(Command)
1 意图 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。 命令模式可以将"动作的请求者"从"动作的执行者"对象中解耦。2 别名 动作(Action) 事物(Transaction)[img]http://t25-3.yunpan.360.cn/p/800-600.9488f768b87b9a435...原创 2013-08-21 12:08:31 · 113 阅读 · 0 评论 -
[创建型模式] head first 设计模式之单件模式(Singleton)
1 意图 保证一个类仅有一个实例,并提供一个访问它的全局访问点。2 适用性 在下面的情况下可以使用Singleton模式 [color=red]a)当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时; b)当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需要更改代码就能适用一个扩展的实例时;[/color]3 优点[color=red] ...原创 2013-08-21 10:10:49 · 94 阅读 · 0 评论 -
[创建型模式] head first 设计模式之工厂模式(Factory)
1 概述 工厂模式专门负责将大量有共同接口的类实例化。工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个类。工厂模式有以下几种形态: [color=red]a) 简单工厂(Simple Factory)模式[/color] 专门定义一个类来负责创建其它类的实例,被创建的实例通常都具有共同的父类。 注意:简单工厂模式并不包含在23种模式之内。[img]...原创 2013-08-20 15:28:05 · 134 阅读 · 0 评论 -
[结构型模式] head first 设计模式之装饰者模式(decorator)
1 别名 包装器wrapper2 介绍 通过使用修饰模式,可以在运行时扩充一个类的功能。原理是:增加一个修饰类包裹原来的类,包裹的方式一般是通过在将原来的对象作为修饰类的构造函数的参数。装饰类实现新的功能,但是,在不需要用到新功能的地方,它可以直接调用原来的类中的方法。修饰类必须和原来的类有相同的接口。 修饰模式是类继承的另外一种选择。类继承在编译时候增加行为,而...原创 2011-07-25 13:23:52 · 102 阅读 · 0 评论 -
[行为模式]head first 设计模式之观察者模式(observer)
1 定义: 观察者模式(有时又被称为发布/订阅模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实作事件处理系统。 [color=red]定义对象间的一种一对多的以来关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 ...2011-07-25 10:18:41 · 91 阅读 · 0 评论 -
[行为模式] head first 设计模式之策略模式(strategy)
1 概念 策略模式(Strategy):它定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法的变化不会影响到使用算法的客户。(原文:The Strategy Pattern defines a family of algorithms,encapsulates each one,and makes them interchangeable. Strate...2011-07-25 10:16:00 · 109 阅读 · 0 评论 -
[创建型模式] 设计模式之抽象工厂模式(Abstract Factory Pattern)
为了方便引进抽象工厂模式,引进一个新概念:产品族(Product Family)。所谓产品族,是指位于不同产品等级结构,功能相关联的产品组成的家族。如图:[img]http://images.cnblogs.com/cnblogs_com/zhenyulu/Pic44.gif[/img] 图中一共有四个产品族,分布于三个不同的产品等级结构中。只要指明一个产品所处的产品族以及它所属的...原创 2016-04-28 11:33:37 · 127 阅读 · 0 评论 -
[创建型模式]设计模之工厂方法模式(Factory Method Pattern)
转自:[url]http://www.cnblogs.com/ejiyuan/archive/2012/06/20/2556418.html[/url][url]http://www.cnblogs.com/xing901022/p/4044211.html[/url][color=red][b]模式意图[/b]工厂方法在MVC中应用的很广泛。工厂方法意在分离产品与创建的两...原创 2016-04-28 14:15:53 · 103 阅读 · 0 评论 -
[创建型模式]设计模之原型模式(Prototype Pattern)
转自[url]http://www.jb51.net/article/80696.htm[/url][color=red][b]目的:[/b][/color]原型模式的意图是用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。[color=red][b]解决的问题:[/b][/color]用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. ...原创 2016-05-03 14:54:14 · 113 阅读 · 0 评论 -
[结构型模式]组合模式(Composite)的安全模式与透明模式
转自[url]http://haolloyin.blog.51cto.com/1177454/347308/[/url][b][color=red]组合模式(Composite):[/color][/b]将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。[color=red][b]使用场景[/b][/color]:1、用于对象的部分-...原创 2016-05-16 09:10:21 · 562 阅读 · 0 评论 -
[结构型模式] 桥接模式的理解
[img]http://api5.yunpan.360.cn/intf.php?method=File.getThumbByNid&qid=108635719&nid=13770720602900100&size=800_600&devtype=web&v=1.0.1&rtick=14661263963507&sign=9de2d2234b58f8d1ddd7780feae1449e&[/img]...原创 2016-05-12 16:34:00 · 99 阅读 · 0 评论 -
[结构型模式] 适配器模式的理解
[img]https://api5.yunpan.360.cn/intf.php?method=Share.getPublicThumbByNid&qid=108635719&nid=13770720602900033&size=800_600&devtype=web&v=1.0.1&rtick=14676152635176&share_qid=108635719&sign=bd2269ec750...原创 2016-05-11 17:23:40 · 103 阅读 · 0 评论 -
[创建型模式] 原型模式的理解
[img]https://api5.yunpan.360.cn/intf.php?method=Share.getPublicThumbByNid&qid=108635719&nid=13770720612900526&size=800_600&devtype=web&v=1.0.1&rtick=14676155696459&share_qid=108635719&sign=bd35d146f15...原创 2016-05-10 16:35:30 · 126 阅读 · 0 评论 -
[原创][创建型模式] 建造者模式的理解
[b][color=green]我的理解[/color][/b]: 在实际的项目中,很多时候我们和一些设备的沟通都是通过数据流来完成的。用户和设备通过固定格式的包进行处理。实际项目中使用的一个实例如下:Application Package Format:{CmdCode}{Type}{P1}{P2}{Len}{Data} 这样的一个包具有严格的格式,同时不同参数具有不同的...原创 2016-05-10 11:20:53 · 94 阅读 · 0 评论 -
[原创][创建型模式] 简单工厂、工厂方法、抽象工厂三种设计模式的理解
[color=red][size=large][align=center]简单工厂模式[/align][/size][/color][color=green][b][size=medium]我的理解:[/size][/b][/color] 假设你需要更换轮胎,你可以选择去一些私人开的小店面;可以去轮胎大卖场;也可以去汽配城。 假设,你优先选择了小型的店面;由于店面空间有限所...原创 2016-05-06 16:17:41 · 170 阅读 · 0 评论