![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
木乃伊x
cocos2d-x
展开
-
设计模式-装饰者模式(decorator pattern)
名称:装饰者模式 说说:哥哥吞并了弟弟后,获得了弟弟的能力,本是同根生... 动机: 适用性:如功能扩展 参与者: 结果:动态地将责任附加到对象上,实现新的扩展 类图: 说明:实际上是在运行时实现了继承的功能(继承兄弟而非父亲,或者说吞并兄弟的属性),继承本身是在编译时决定的原创 2015-03-26 16:11:30 · 488 阅读 · 0 评论 -
设计模式-策略模式(strategy pattern)
名称:策略模式 说说:这件事情必须做,但具体怎么做目前还不确定,那就先留个接口,等确定时再做吧! 动机: 适用性: 参与者: 结果:定义了算法族,分别封装起来,让它们之间可以相互替换 实现: 说明:可以确定类有该行为,但又不能确定该行为的具体实现(存在多种实现/策略,如鸟类都有拍翅膀的行为,但有些可以飞起来,有些则不能),不防先给该行为预留一个接口,具体的选择哪个实现方式/原创 2015-03-26 12:07:18 · 390 阅读 · 0 评论 -
设计原则
1. 单一职责原则(Single Responsibility Principle) 类要职责单一 2. 里氏替换原则(Liskov Substitution Principle) 不要破坏继承体系,即不要随便重写父类的方法 3. 依赖倒置原则(Dependence Inversion Principle) 要面向接口编程 4. 接口隔离原则(Interfac原创 2015-03-30 11:35:20 · 405 阅读 · 0 评论 -
设计模式-代理模式(proxy pattern)
名称: 代理模式 说说: 动机: 适用性: 参与者: 结果:为另一个对象提供一个替身或占位符以控制对这个对象的访问 类图: 说明:通常分远程代理、虚拟代理(开销大的资源)和保护代理(权限资源)3种,结构的关键在于代理与实体对象继承同一个接口。 demo c#: namespace proxy { class Program { static原创 2015-03-27 18:47:00 · 476 阅读 · 0 评论 -
设计模式-状态模式(state pattern)
名称: 状态模式 说说: 动机: 适用性: 参与者: 结果:允许对象在内部状态改变时,改变自身的行为 类图: 说明:把状态改变的权力交给状态对象(本该属于context 的) demo c#: namespace state { class Program { static void Main(string[] args) {原创 2015-03-27 18:28:00 · 537 阅读 · 0 评论 -
设计模式-迭代器模式(iterator pattern)
名称:迭代器模式 说说: 动机: 适用性: 参与者: 结果:提供一个方法顺序访问一个聚合对象的各个元素,而又不需要暴露该对象的内部表示 类图: 说明: demo c#: namespace Iterator { class Program { static void Main(string[] args) { concret原创 2015-03-27 17:30:51 · 487 阅读 · 0 评论 -
设计模式-组合模式(Composite pattern)
名称: 组合模式 说说: 动机:使得用户对单个对象和组合对象的使用具有一致性 适用性: 参与者: 结果:将对象组合成树形结构以表示成“部分-整体”的层次结构 类图: 说明:单个和组合使用统一的操作 demo c#: namespace component { class Program { static void Main(string[] arg原创 2015-03-27 19:01:42 · 474 阅读 · 0 评论 -
设计模式-外观模式(facade pattern)
名称: 外观模式 说说:电脑启动需要经历哪些环节我不知道,我只需要按下开机按钮 动机: 适用性: 参与者: 结果:将一套行为封装到一个方法中,即定义一个高层接口,用来访问子系统中的一群接口 类图: 说明:简化了客户与子系统的交互过程,降低了客户与子系统的耦合度 demo c#: namespace facade { class Program {原创 2015-03-27 14:27:11 · 428 阅读 · 0 评论 -
设计模式-适配器模式(adapter pattern)
名称: 适配器模式 说说:还记得 xxx 类下面的 xxxWrapper 类吗? 动机: 适用性: 参与者: 结果:将一个类的接口,转换成客户期望的另一个接口 类图(类适配): 类图(对象适配): 说明:感觉对象适配用例要多一点。原创 2015-03-27 12:14:34 · 639 阅读 · 0 评论 -
设计模式-抽象工厂模式(abstractFactory pattern)
名称:抽象工厂模式 动机:别管这钱怎么来的(有美元和欧元),给你就用就行了 适用性: 参与者: 结果:和工厂方法类似,属于工厂方法的升级版本,唯一的改变是抽象工厂对产品作了进一步的细分 类图: 说明:允许客户使用抽象的接口来创建一组相关的产品,而不需要知道实际产出的产品是什么,从而实现客户与产品的解耦。 code C#: namespace abstractFactory原创 2015-03-26 20:35:46 · 438 阅读 · 0 评论 -
设计模式-模板方法模式(templateMethod pattern)
名称: 模板方法 说说:会做的题先做,不会做的题我先不做,让以后我儿子来做 动机: 适用性: 参与者: 结果:在一个方法中定义一个算法的骨架,一些步骤延迟到子类中实现 实现: 说明:多组相似的行为,实现过程中,步骤实现相同的在父类就可以实现,不相同或不确定相同的留给子类去实现。 demo c#: namespace templateMethod { class P原创 2015-03-27 16:40:33 · 456 阅读 · 0 评论 -
设计模式-命令模式(command pattern)
名称:命令模式 说说:这其实和小时候我们传纸条是一样一样的,一张纸条代表一条命令 动机: 适用性: 参与者: 结果:将一个请求封装为一个对象 类图: 说明:一个命令(请求)就是一个实例(命令对象 = 动作的执行者 + 要执行的行为),发送一个命令就是传递一个命令参数。 demo C#: namespace command { class Program {原创 2015-03-26 21:28:22 · 448 阅读 · 0 评论 -
设计模式-单例模式(singleton pattern)
名称: 单例模式 说说: 动机: 适用性: 参与者: 结果:确保一个类只有一个实例,并提供全局访问点 类图: 说明:多线程下可能需要加锁,以防创建多个实例,但同步一个方法可能会严重影响程序的运行效率,所以慎用! code c#: namespace singleton { class Program { static void Main(strin原创 2015-03-26 20:53:28 · 348 阅读 · 0 评论 -
设计模式-工厂方法模式(factoryMethod pattern)
名称:工厂模式 说说:别管这钱怎么来的,给你就用就行了 动机: 适用性: 参与者: 结果:定义了一个创建对象的接口,由子类决定要实例化哪个类,将创建过程推迟到子类 类图: 说明:实现了产品的生产者和调用者解耦,即不管对象的实例化有多么的复杂,有多少的依赖,对象的调用者都无需关心。 demo c#: namespace factoryMethod { class P原创 2015-03-26 18:30:56 · 463 阅读 · 0 评论 -
设计模式-观察者模式(observer pattern)
名称:观察者模式 说说:把你的电话留下,有事我会通知你,回去等我的消息吧! 动机: 适用性: 参与者: 结果:定义了对象之间一对多依赖,当一个对象改变状态时,它的所有依赖者都会收到通知 类图: 说明: 分推模式和拉模式,此为推模式。 demo c#: namespace observePattern { class Program { st原创 2015-03-26 14:15:38 · 416 阅读 · 0 评论 -
关联、组合、聚合、依赖关系比较
转自:http://blog.csdn.net/tianhai110/article/details/6339565 在UML类图中,常见的有以下几种关系:泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1.泛化(Generali转载 2015-01-28 11:34:20 · 300 阅读 · 0 评论