设计模式
pinel
生活多苦难,成就真猛男
展开
-
Strategy模式
定义:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。Strategy模式使算法可独立于使用它的客户而变化。意图:可以根据所处上下文,使用不同的业务规则或算法。问题:对所需算法的选择取决于发出请求的客户或者要处理的数据。如果只有一些不会变化的算法就不需要Strategy模式。参与者与协作者:1、Strategy指定了如何使用不同的算法。2、各ConcreteStrate原创 2007-11-30 17:33:00 · 455 阅读 · 0 评论 -
Bridge模式
定义:将抽象与其实现解耦,使它们都可以独立地变化。这里的实现是指抽象类及其派生类用来实现自己的对象。意图:将一组实现与另一组使用它们的对象分离。问题:一个抽象类的派生类必须使用多个实现,但不能出现类数量爆炸性增长。解决方案:为所有实现定义一个接口,供抽象类的所有派生类使用。参与者与协作者:Abstraction为要实现的对象定义接口,Implementor为具体的实现类定义接口。A原创 2007-11-30 18:13:00 · 329 阅读 · 0 评论 -
Abstract Factory模式
定义:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定它们的具体类。意图:需要为特定的客户(或情况)提供对象组。问题:需要实例化一组相关的对象。解决方案:协调对象组的创建。提供一种方式,将如何执行对象实例化的规则从使用这些对象的客户对象提取出来。参与者与协作者:AbstractFactory为如何创建对象组的每个成员定义接口。一般每个组都由独立的ConcreteFactor原创 2007-11-30 19:17:00 · 366 阅读 · 0 评论 -
Facade模式
定义:为子系统中的一组接口提供一个统一接口,一个更高层的接口,使子系统更加容易使用。意图:简化原有系统的使用方式。需要定义自己的接口。问题:是需要使用某个复杂系统的子集,或需要一种特殊的方式与此系统交互。解决方案:为原有系统的客户提供一个新的接口。参与者与协作者:接口本身和各个子系统。效果:简化了对所需子系统的使用过程。实现:1、定义一个或多个具备所需接口的新类。2、让新的原创 2007-11-30 14:03:00 · 381 阅读 · 0 评论 -
Adapter模式
定义:将一个类的接口转换成客户希望的另外一个接口。使原本由于接口不兼容而不能一起工作的类可以一起工作。意图:使控制范围之外的一个原有对象与某个接口匹配。问题:系统的数据和行为都正确,但接口不符。通常用于必须从抽象类派生时。解决方案:提供具有所需接口的包装类。参与者和协作者:Adapter改变了Adaptee的接口,使Adaptee与Adapter 的基类Target匹配。这样Cli原创 2007-11-30 14:33:00 · 361 阅读 · 0 评论