随笔分类 -  设计模式

摘要:组合模式 意图: 将对象组合成树形结构以表示‘部分-整体’的层次结构,所以有时候又叫做部分-整体模式。组合模式使得用户对单个对象和组合对象的使用具有一致性。,它使我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以向处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解 阅读全文
posted @ 2016-04-12 14:37 吴筱军 阅读(2100) 评论(0) 推荐(0)
摘要:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将改对象恢复到原先保存的状态。 阅读全文
posted @ 2016-04-11 15:08 吴筱军 阅读(1086) 评论(0) 推荐(1)
摘要:以前很喜欢玩war3里面的国家对抗,是一个建造类游戏。 阅读全文
posted @ 2016-04-06 20:30 吴筱军 阅读(9216) 评论(2) 推荐(1)
摘要:系统设计的5大原则,简写分别是S、O、L、I、D。 S - 类职责单一原则: 即职责划分要清晰,不同职责的不要搅和在一起。每个类应该只有一个让他发生改变的原因。O - 开放封闭原则: 对扩展开发,对修改封闭。即如果系统要变化,就去扩展、新增新类,不要修改现有的类。L - LISKOV原则: 子类应该 阅读全文
posted @ 2016-04-06 09:30 吴筱军 阅读(1101) 评论(0) 推荐(0)
摘要:为子系统中的一组接口提供一个一致的界面,降低应用程序的复杂度,提高了程序的可维护性。 阅读全文
posted @ 2016-04-05 11:56 吴筱军 阅读(801) 评论(0) 推荐(1)
摘要:模板方法通过把不变行为搬移到超类,去除子类中的重复代码来实现它的优势,避免了重复,控制了扩展! 阅读全文
posted @ 2016-04-01 12:07 吴筱军 阅读(319) 评论(0) 推荐(0)
摘要:代理模式 尽管Decorator的实现部分与代理相似,但Decorator的目的不一样。Decorator为对象添加一个或多个功能,而代理则控制对对象的访问。 意图: 为其他对象提供一种代理以控制对这个对象的访问。 适用性: 在需要用比较通用和复杂的对象指针代替简单的的指针的时候,使用代理模式。 1 阅读全文
posted @ 2016-03-11 21:53 吴筱军 阅读(10777) 评论(0) 推荐(1)
摘要:装饰模式 层层包装,增强功能。这就是装饰模式的要旨!装饰器模式就是基于对象组合的方式,可以很灵活的给对象添加所需要的功能。它把需要装饰的功能放在单独的类中,并让这个类包装它所要装饰的对象。 意图: 动态的给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类模式更为灵活。 阅读全文
posted @ 2016-03-09 21:24 吴筱军 阅读(3622) 评论(0) 推荐(2)
摘要:单一职责原则: 就一个类而言,应该仅有一个引起它变化的原因!如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭到意想不到的破坏。如何你能够想到多于一个的动机去改变一个类,那么这个类就具有多于 阅读全文
posted @ 2016-03-08 19:45 吴筱军 阅读(208) 评论(0) 推荐(0)
摘要:简单工厂模式 专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。它又称为静态工厂方法模式,属于类的创建型模式。简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。 该模式中包含的角色及其职责: 1、工厂(Crea 阅读全文
posted @ 2016-03-07 21:05 吴筱军 阅读(385) 评论(0) 推荐(0)
摘要:1意图定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。2别名依赖(Dependents), 发布-订阅(Publish-Subscribe)3动机将一个系统分割成一系列相互协作的类有一个常见的副作用:需要维护相关对象间的一致性。我们不希望为了维... 阅读全文
posted @ 2015-08-02 18:15 吴筱军 阅读(844) 评论(0) 推荐(0)
摘要:意图:将一个类的接口转换成客户希望的另一个接口。适用性:1.你想使用一个已存在的类,而它的接口不符合你的需求。 2.你想创建一个可以复用的类,该类可以与其它不相关的类或不可预见的类协同工作。 类适配器结构:类适配器效果:1.仅仅引入一个对象,并不需要额外的指针以间接得到adaptee。 ... 阅读全文
posted @ 2014-12-19 12:01 吴筱军 阅读(1159) 评论(0) 推荐(0)
摘要:意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。实用性:1.当类只能有一个实例而且客户可以从一个众所周知的访问点访问它。 2.当这个唯一的实例应该是通过子类可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。效果: 1.只有一个实例,可以严格的控制客户怎样以及何时访问。 ... 阅读全文
posted @ 2014-12-18 23:20 吴筱军 阅读(1543) 评论(0) 推荐(0)
摘要:意图:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。实用性:1.当要实例化的类是在运行时刻指定时。 2.为了避免创建一个与产品类层次平行的工厂类层次时。 3.当一个类的实例只能有几个不同状态组合中的一种时。效果: 1.可以在运行时刻增加产品。 2.改变值以指定新... 阅读全文
posted @ 2014-12-18 13:14 吴筱军 阅读(2245) 评论(0) 推荐(0)
摘要:意图:定义一个用于创建对象的接口,让子类觉定实例化哪一个类。适用性:1.一个类不知道它必须创建的对象的时候。 2.一个类希望由它的子类指定它所创建的对象的时候。 3.当类将创建对象的职责委托给多个帮助子类中的某一个,并且希望将那一个帮助子类是代理者这一信息局部化的时候。效果: 1.提供... 阅读全文
posted @ 2014-12-16 16:46 吴筱军 阅读(415) 评论(0) 推荐(0)
摘要:意图:将一个复杂对象的创建与它的表示分离,使得同样的构建过程可以创建不同的表示。适用性:1.当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。 2.当构建过程必须允许被构建的对象有不同的表示时。效果: 1.使得可以改变一个产品的内部表示。 2.隐藏产品的内部结构。 ... 阅读全文
posted @ 2014-12-15 15:43 吴筱军 阅读(864) 评论(0) 推荐(0)
摘要:模式意图:提供一个创建一系列相关或相互依赖对象的接口,二无需指定他们具体的类。效果:分离了具体的类。 使 a.客户与类的实现分离 b.客户通过抽象接口操纵实例 c.产品的类名在实现中被分离它使得易于交换产品系列。 我们仅需转换到相应的工厂对象并从新创建接口,就能交换产品系列有利于产品的一致性... 阅读全文
posted @ 2014-12-05 12:19 吴筱军 阅读(308) 评论(0) 推荐(0)