摘要:
一、概述 将类的抽象部分与实现分部分离开来,使它们都可以独立地变化。二、适用性1.你不希望在抽象和实现之间有一个固定的绑定关系的时候。例如:在程序运行时实现部分应可以被选择或切换。2.类的抽象以及实现都应该可以通过生成子类的方法加以扩充的时候。桥接模式使你可以对不同的抽象接口和实现进行组合,并且分别对它们进行扩充。3.对一个抽象的实现部分的修改应对客户不产生影响的时候,即客户的代码不必重新编译。4.你必须将一个对象分解成两个部分的时候。5.你想在多个对象间共享实现(可能使用引用计数),但是同时要求客户并不知情的时候。三、参与者1.Abstraction:定义抽象类的接口。维护一个指向Im... 阅读全文
posted @ 2013-05-31 12:08
Innosight
阅读(200)
评论(0)
推荐(0)
摘要:
传送门☞轮子的专栏☞转载请注明☞http://blog.csdn.net/leverage_1229MultiSelectDeleteActivity.javapackage cn.lynn.multisel; import java.util.HashMap;
import java.util.HashSet;
import java.util.Map; import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.. 阅读全文
posted @ 2013-05-31 04:33
Innosight
阅读(283)
评论(0)
推荐(0)
摘要:
一、概述 将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。二、适用性1.你想使用一个已经存在的类,但是它的接口不符合你的要求的时候。2.你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口肯不一定兼容的类)协同工作的时候。3.你想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口的时候。对象适配器可以适配它的父类接口。三、参与者1.Target:定义Client使用的与特定领域相关的接口。2.Adaptee:定义一个已经存在的接口,该接口需要适配。3.Adapter:对Adapte... 阅读全文
posted @ 2013-05-31 04:07
Innosight
阅读(185)
评论(0)
推荐(0)
摘要:
一、概述 运用共享技术有效地支持大量细粒度的对象。二、适用性1.当一个应用程序使用了大量的对象的时候。2.由于使用大量的独享而造成很大的存储开销的时候。3.对象的大多数状态都可变为外部状态的时候。4.如果删除对象的外部状态,那么可以用相对较少的共享独享取代很对组对象的时候。5.应用程序不依赖于对象标识的时候。由于享元模式对象可以被共享,对于概念上明显有别的对象,标识测试将返回真值。三、参与者1.Flyweight:描述一个接口,通过这个接口Flyweight可以接受和作用于对象外部状态。2.ConcreteFlyweight:实现Flyweight接口,并为内部状态(如果有)增加存储空间... 阅读全文
posted @ 2013-05-30 20:12
Innosight
阅读(204)
评论(0)
推荐(0)
摘要:
1概述 保证一个类仅有一个实例,并提供一个访问它的全局访问点。2适用性1.当类只能有一个实例而且客户可以从一个总所周知的访问点访问它的时候。2.当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例的时候。3参与者Singleton:定义一个Instance操作,允许客户访问它的唯一实例。Instance是一个类的操作,可能复杂创建它自己的唯一实例。4类图5示例Singletonpackage cn.lynn.singleton; public class Singleton { private static Singleton instanc... 阅读全文
posted @ 2013-05-30 16:09
Innosight
阅读(166)
评论(0)
推荐(0)
摘要:
在UML类图中,常见的有以下几种关系: 泛化(Generalization)、实现(Realization)、关联(Association)、聚合(Aggregation)、组合(Composition)、依赖(Dependency)。一、 泛化(Generalization)【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。【箭头指向】:带三角箭头的实线,箭头指向父类。二、实现(Realization)【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现。【箭头指向】:带... 阅读全文
posted @ 2013-05-30 15:42
Innosight
阅读(458)
评论(0)
推荐(0)
摘要:
一、概述 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。二、适用性1.一个系统要独立于它的产品的创建、组合和表示的时候。2.一个系统要由多个产品系列中的一个来配置的时候。3.当你要强调一系列相关的产品对象的设计以便进行联合使用的时候。4.当你提供一个产品类库,而只想显示它们的接口而不是实现的时候。三、参与者1.AbstractFactory:声明一个创建抽象产品对象的操作接口。2.ConcreteFactory:实现创建具体产品对象的操作。3.AbstractProduct:为一类产品对象声明一个接口。4.ConcreteProduct:定义一个将被相应地具体工程创... 阅读全文
posted @ 2013-05-30 13:55
Innosight
阅读(225)
评论(0)
推荐(0)
摘要:
一、概述 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。二、适用性1.当一个系统应该独立于它的产品创建、构成和表示的时候。2.当要实例化的类是在运行时刻指定的时候,例如:通过动态装载。3.为了避免创建一个与产品类层次平行的工厂类层次的时候。4.当一个类的实例只能有几个不同状态组合中的一种的时候。 建立相应数目的原型并克隆它们可能要比每次用合适的状态手工实例化该类更方便一些。三、参与者1.Prototype:声明一个克隆自身的接口。2.ConcretePrototype:实现一个克隆自身的操作。3.Client:让一个原型克隆自身从而创建一个新的对象。四、类图五、示... 阅读全文
posted @ 2013-05-30 12:59
Innosight
阅读(198)
评论(0)
推荐(0)
摘要:
一、概述 将一个复杂对象的构建与其表示分离开来,使得同样的构建过程可以创建不同的表示。二、适用性1.当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式的时候。2.当构造过程必须允许被构造的对象有不同的表示的时候。三、参与者1.Builder:为创建一个Product对象的各个部件指定抽象接口。2.ConcreteBuilder:实现Builder接口以构造和装配该产品的各个部件。3.Director:构造一个使用Builder接口的对象。4.Product:表示被构造的复杂对象。ConcreteBuilder创建该产品的内部表示并定义它的装配过程。包括定义组成部件的类,以及... 阅读全文
posted @ 2013-05-30 07:19
Innosight
阅读(229)
评论(0)
推荐(0)
摘要:
一、概述 定义一个用于创建对象的接口,让子类去决定实例化哪个类。工厂方法将一个类的实例化延迟至其子类。二、适用性1.当一个类不知道它所必须创建的对象的类的时候。2.当一个类希望由其子类来指定它所创建的对象的时候。3.当类将创建对象的职责委托给多个帮助子类的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。三、参与者1.Product:定义工厂方法所创建的对象的接口。2.ConcreteProduct:实现Product接口。3.Creator:声明工厂方法,该方法返回一个Product类型的对象。Creator也可以定义一个工厂方法的缺省实现,它返回一个缺省的Concret... 阅读全文
posted @ 2013-05-30 04:41
Innosight
阅读(216)
评论(0)
推荐(0)
浙公网安备 33010602011771号