设计模式
文章平均质量分 84
Rayen0715
这个作者很懒,什么都没留下…
展开
-
设计模式之装饰器模式(C++)
装饰器模式(DECRATOR):为了实现动态的给对象添加职能,即从外部给对象添加相关职能。可以这样理解,比如说一个Person类,该类的操作有能吃、能睡、能跑、但假如随着人类的进化,某一天Person能飞了,能在水里游了等等,按照一般的写法是修改Person这个类,给这个类添加上能飞,能游等操作,但是这样破坏了面向对象的开放-封闭原则(对修改封闭,对拓展开发,有兴趣的可以查看相关文献),且随着人类原创 2016-06-24 11:39:21 · 6838 阅读 · 4 评论 -
设计模式之观察者模式(C++)
观察者模式(Observer):定义了对象间的一种一对多的关系,当一个对象改变时,所有依赖他的对象都得到通知并自动更新。动机:将一个系统划分成一系列相互协作的类有一个常用的副作用:需要维护相关对象间的一致性,我们不希望为了维护一致而是的各类紧密耦合,因为主要降低了系统的可复用性,因此利用观察者模式可以描述建立一种各层次之间的关系的模型,当被依赖的某个对象的状态发生变更时,所有依赖的对象的状原创 2016-07-19 15:21:16 · 381 阅读 · 0 评论 -
设计模式之适配器模式(Adapter)C++实现
适配器模式:是将一个类的接口转换成客户想希望的另外一个接口。Adapter模式使得原本由于接口不兼容的而不能一起工作的那些类可以一起工作。简单的来说是配置是解决主要一类问题:我们需要的东西就在面前,但是却不能用,短时间又无法改造它,于是我们就想办法适配它。比如说我们购买笔记本等电子产品时,经常会带一个电源适配器,这是因为我们家用点的电压是220V的,而一般的笔记本工作电压在16V到22V之间,原创 2016-07-26 15:42:25 · 522 阅读 · 0 评论 -
设计模式之外观模式(Facade)C++
外观模式:为客户端提供一套统一的接口,处理客户端请求,使客户端和具体的功能类分离开来,具体功能类的修改不影响客户端。定义了一个高层接口,使得子系统更容易使用。动机:将一个系统划分成若干的子系统有利于降低系统的复杂性,一个常见的设计目标是使得各个子系统的通信和相互依赖关系达到最小,达到该目标的途径之一就是引入外观模式,利用外观模式为各个子系统提供一个统一一致的简单界面。外观模式的通用UM原创 2016-07-15 15:10:18 · 882 阅读 · 0 评论 -
设计模式之代理模式(C++)
代理模式:为其他对象提供一种代理以控制对这个对象的访问。对一个对象进行访问控制的一个原因是为了只有在我们确实需要这个对象时才对它进行创建和初始化,比如在一个文档编辑器中插入一个图片,有些图片的创建的开销很大,但是又要求打开文档速度要求很快,因此在打开文档时应该避免创建开销大的对象,因为并非打开文档时文档中的所有资源都必须可见,所以没必要一次性同时创建所有对象而应该在需要显示对应的资源也就是需要原创 2016-06-30 16:10:31 · 368 阅读 · 0 评论 -
设计模式之模板方法模式(C++)
模板方法:定义一个操作中的算法骨架,而将一些步骤延迟到子类中实现。模板方法使得子类可以再不改变一个算法的结构即可重新定义该算法的某些特定步骤。通过把不变的行为搬移到基类中,去除了子类的重复代码,提供了一个很好的代码复用解决方案。通用模板方法的UML类图模板方法是将原来不变的行为和可变的行为剥离开,将不变的行为剥离到基类中,由基类提供一个模板方法,模板方法设置了算法的骨架,而各家原创 2016-07-12 15:05:39 · 2294 阅读 · 0 评论 -
设计模式之状态STATE模式(C++)
状态模式:属于行为型模式的其中一种,其允许一个对象在内部改变状态时改变它的行为,对象看起来似乎修改了它的类。状态模式主要解决的是当控制一个对象的状态转换条件表达式过于复杂时的情况,把状态的逻辑判断转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化。好处就是讲于特定状态相关的行为局部化,并且将不同的状态行为分割开来。比如说我们有一个DoSomeThing的函数,该函数内有大量的if els原创 2016-07-22 14:46:18 · 3097 阅读 · 2 评论 -
设计模式之原型模式(C++)
原型模式:属于对象创建型模式的一种,用于根据原型实例创建指定类型的对象,并且通过拷贝这些原型来创建新的对象。适用性:当一个系统需要独立于它的产品创建、构成和表示时,要使用ProtoType模式;以及当要实例化的类是在运行时指定,如通过动态加载或者为了避免创建一个与产品层次平行的工厂类层次时;或者当一个类的示例只能有几个不同的状态组合中的一组时建立相应的原型克隆核能比每次用合适的状态原创 2016-07-11 17:14:46 · 459 阅读 · 0 评论 -
设计模式之备忘录模式(C++实现)
备忘录模式:备忘录模式的UML类图:备忘录模式的实现Demo:Memento.h#include class Memento;class GameRole{private: int m_blood; int m_enery;public: GameRole(int blood = 100, int energy = 100原创 2016-08-18 17:23:50 · 440 阅读 · 0 评论