
设计模式
iteye_10501
这个作者很懒,什么都没留下…
展开
-
【创建型模式】abstract factory(抽象工厂)
1.意图提供一个创建一系列相关或者互相依赖对象的接口,而无须制定其他具体的类。也就是说有一组工厂,他们都生产互相依赖的对象,所以他们可以抽出一个抽象工厂。2.别名kit3.动机比如有一个奶制品工厂,有好几个产品线,比如有豆奶产品线,有牛奶产品线等等。这个时候就可以使用这个模式。或者说设计一个论坛的样式,有windows风格,有macos风格等等。4.适用性...2009-05-18 22:30:06 · 148 阅读 · 0 评论 -
【行为模式】chain of responsibility(责任链)
1. 意图使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。2.在实际情况中,比如很长的一个业务流,有很多有顺序的规则来过滤,这个时候就可以使用责任链模式。责任链模式往往由其他模式演化而来,比如装饰器,代理。其实有时候如果不考虑责任的先后顺序,其实也可以用组合来解决。但是不管怎么样,他们的...2009-06-18 16:31:48 · 137 阅读 · 0 评论 -
【结构型模式】proxy(代理)
1. 意图为其他对象提供一种代理以控制对这个对象的访问。2. 别名Surrogate 3. 动机某些对象创建或者访问的开销非常大,可以试图去访问它的代理对象4.适用性远程代理虚代理:根据需要创建开销很大的对象保护代理:屏蔽某些功能不被访问Smart Reference:访问对象的时候执行一些附加操作[img]/upload/attachm...2009-06-01 16:09:14 · 97 阅读 · 0 评论 -
【结构型模式】flyweight(享元)
1. 意图运用共享技术有效地支持大量细粒度的对象。2. 适用性flyweight模式的有效性很大程度上取决于如何使用它以及在何处使用它。当以下情况都立时使用flyweight模式:• 一个应用程序使用了大量的对象。• 完全由于使用大量的对象,造成很大的存储开销。• 对象的大多数状态都可变为外部状态。• 如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对...2009-06-01 16:01:25 · 83 阅读 · 0 评论 -
【结构型模式】facade(外观)
1. 意图为子系统中的一组接口提供一个一致的界面,facade模式定义了一个高层接口。下载口使得这一子系统更加容易使用。2. 动机将一个系统划分成为若干个子系统有利于降低系统的复杂性。一个常见的设计目标是使子系统间的通信和相互依赖关系达到最小。达到该目标的途径之一是就是引入一个外观(facade)对象,它为子系统中较一般的设施提供了一个单一而简单的界面。一般...2009-05-28 23:53:10 · 124 阅读 · 0 评论 -
【结构型模式】decorator(装饰)
1. 意图动态地给一个对象添加一些额外的职责。就增加功能来说,decorator模式相比生成子类更为灵活。2. 别名包装器wrapper3. 动机有时我们希望给某个对象而不是整个类添加一些功能.比如JAVA里的IO是使用了该模式懒得画图了,就是一个对象持有另外一个对象。可以连环套。...2009-05-28 23:40:36 · 107 阅读 · 0 评论 -
【结构型模式】composite(组合)
1. 意图将对象组合成树形结构以表示“部分-整体”的层次结构。composite使得用户对单个对象和组合对象的使用具有一致性。比如一棵树,由子节点和叶子节点组成[img]/upload/attachment/108938/fd9db7ed-8e16-3f0a-b49a-204712382d16.jpg[/img]...2009-05-28 23:34:34 · 99 阅读 · 0 评论 -
【结构型模式】bridge(桥接)
1. 意图将抽象部分与它的实现部分分离,使它们都可以独立地变化。2. 别名handle/body3. 动机当一个抽象可能有多个实现时,通常用继承来协调它们。抽象类定义对该抽象的接口,而具体的子类则用不同方式加以实现。但是此方法有时不够灵活。继承机制将抽象部分与它的实现部分固定在一起,使得难以对抽象部分和实现部分独立地进行修改、扩充和重用。举个例子:比如足球联...2009-05-28 23:23:58 · 118 阅读 · 0 评论 -
【结构型模式】adapter(适配器)
1. 意图将一个类的接口转换成客户希望的另外一个接口。adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。2. 别名包装器wapper。3. 动机有时,为复用而设计的工具箱类不能够被复用的原因仅仅是因为它的接口与专业应用领域所需要的接口不匹配。举个例子,有一天你去某公司开会,正巧你的笔记本电池用光了,郁闷的是该公司会议室的电源插槽式2叉的...2009-05-28 22:45:44 · 117 阅读 · 0 评论 -
【创建型模式】singleton(单例)
1. 意图保证一个类仅有一个实例,并提供一个访问它的全局访问点。2. 适用性在下面的情况下可以使用S i n g l e t o n模式• 当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。• 当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。考虑下面的问题:单例真的安全吗?如何避免出现多个实例?...2009-05-18 23:47:11 · 138 阅读 · 0 评论 -
【创建型模式】protopyte(原型)
1. 意图用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。2.动机比如我们要生产J10战斗机,但是由于技术问题不知道怎么生产,咋办?那就从苏联买一些米格战斗机,这就是原型,然后,嘿嘿。。。(以上纯属YY)3. 适用性当一个系统应该独立于它的产品创建、构成和表示时,要使用原型模式• 当要实例化的类是在运行时刻指定时,例如,通过动态装载• 为了避免创建一...2009-05-18 23:43:26 · 194 阅读 · 0 评论 -
【创建型模式】abstract factory(抽象工厂)
1. 意图定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子类。2.动机比如你要生产一种枪,但是不知道枪的具体型号,那就把这个任务交给你的手下去做吧。3.适用性当一个类不知道它所必须创建的对象的类的时候。• 当一个类希望由它的子类来指定它所创建的对象的时候。• 当类将创建对象的职责委托给多个帮助子类中...2009-05-18 23:29:51 · 99 阅读 · 0 评论 -
【创建型模式】builder(生成器)
1.意图将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。即按步骤的进行创建复杂对象2.动机当你需要按照不同的顺序创建一个复杂的对象的时候,可以考虑使用该模式3.适用性• 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。• 当构造过程必须允许被构造的对象有不同的表示时。4.图例这里以创建一辆汽车为例[i...2009-05-18 23:14:51 · 102 阅读 · 0 评论 -
设计原则与模式
见附件。。。。原创 2010-08-03 13:14:33 · 98 阅读 · 0 评论