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