08 2008 档案
10.Facade(外观、门面)
摘要:Facade(外观、门面)是外部用户对象通过一个统一的门面的对象来与一个子系统进行交互。门面模式为子系统中的一组接口,提供一个统一的门面供外部对象访问。也就是门面模式定义了一个更高层次的接口让外部对象容易使用这个子系统。适用情况:1.想要为一个复杂的子系统提供简单的接口。2.客户程序与抽象类的实现部分之间存在者很大的依赖性。3.当需要构建一个层次结构的子系统时,使用门面模式定义子系统中每个曾的入口... 阅读全文
posted @ 2008-08-15 18:04 goldany 阅读(234) 评论(0) 推荐(0)
9.Decorator(装饰者模式)
摘要:Decorator(装饰者模式)以对客户端透明的方式动态的为对象附加责任。此模式提供了一个比继承更为灵活的替代方案来扩展对象的功能。虽然与适配器一样的被称作包装者(wrapper)但他们本质有区别。适配器要改变所考虑对象接口,而不一定改变对象的性能;装饰者是要保持对象接口,从而增强对象性能。适用情况:1.在不影响其他对象的情况下,动态且透明的增加一个责任到一个对象。2.希望责任和功能可以随时增加或... 阅读全文
posted @ 2008-08-15 17:31 goldany 阅读(267) 评论(0) 推荐(0)
8.Composite(合成模式、个别-整体模式)
摘要:Composite(合成模式、个别-整体模式)合成模式吧多个对象合称为树状结构用以表现个别与整体的层次结构。合成模式让客户端能够以统一的方式处理单个对象和合成对象。合成模式是一个表示基本元素及其容器的抽象类。适用情况:1.要显示对象之间个别与整体的树形结构。2.要让客户端忽略合成对象及原始对象的差别,让客户端用一致的方式对待合成结构中的对象。结构:1.抽象部件(CComponent):声明合成对象... 阅读全文
posted @ 2008-08-15 17:15 goldany 阅读(241) 评论(0) 推荐(0)
7.Bridge(桥接模式)
摘要:Bridge(桥接模式)用于将抽象化与实现解耦,使得二者可以独立的变化。适用情况:1.为了避免固定的绑定一个属性及其实现,即避免在抽象化角色和实现化角色间建立静态的联系。特别是其实现在运行期需要灵活选择或切换的时候。2.属性及其实现在派生类中需要扩充,即抽象化角色和实现化角色需要独立的变化。例如:可以对不同的抽象接口和实现部分进行组合,并分别对他们进行独立的扩充。3.改变一个属性的实现对使用者不产... 阅读全文
posted @ 2008-08-15 16:54 goldany 阅读(176) 评论(0) 推荐(0)
6.Adapter(适配器模式、wrapper包装者模式)
摘要:Adapter(适配器模式、wrapper包装者模式)其作用是将一个接口转换成客户所期待的另外一个接口。从而让多个类共同工作,而这些类原先因为其接口不兼容而无法共同工作。类似一种接口转换装置。接口改变,是我们在编程的时候经常遇到的头疼问题。软件开发在不断的进步,用于实现某一功能的类(或组件)也不会是一成不变的。如果想要给用户提供ige比较稳定的接口,就需要考虑使用适配器来缓冲和协调不同接口的差异,... 阅读全文
posted @ 2008-08-15 16:27 goldany 阅读(507) 评论(0) 推荐(0)
5.Prototype(原型模式)
摘要:Prototype(原型模式)通过给出一个原型对象来指明所要创建对象的类型,然后克隆该原型对象以便创建出更多同类型的新对象。例如:我们的开发IDE,在winform上可以使用copy和paste,呵呵。就这么简单.适用情况:1.当需要实例化的类是在运行期指定时。2.当类实例只是少数不同组合状态之一时,这时候比较好的方式是在适当的状态下使用一些组合的原型并复制他们,而并不是人工的继承这些类。3.为了... 阅读全文
posted @ 2008-08-15 11:57 goldany 阅读(199) 评论(0) 推荐(0)
4.Singleton(单例模式)
摘要:Singleton(单例模式)由于确保一个类在系统中只有一个实例,并负责自行实例化和向整个系统提供对该实例的访问。单例模式的典型应用是建立管理或服务类型的类,并在任何时候都可以为系统提供这样一个公用的全局对象。一个类可以生成多个实例,也可以唯一生成一个实例,前者称为多例,或者称为单例。单例通常用于管理资源,可以避免竞争资源造成的冲突。实际上单例把多例的并行访问资源编程了串行,从而解决了资源竞争的矛... 阅读全文
posted @ 2008-08-15 11:42 goldany 阅读(254) 评论(0) 推荐(0)
3.Builder(建造者模式)
摘要:Builder(建造者模式)将一个复杂对象的构造方法从其表现中分离出来,以便同样的构造方法可以建立不同的表现。复杂的对象,是指该复杂对象作为构造的产品通常是由不同部分组成的,而这些部分的不同作用和表现,则构成了该对象的不同表现。由于需要创建的对象具有复杂的内部结构,该对象的创建与其个组成部分或相关部分相互依赖,即要生成的产品的属性(部件)相互依赖。所以构建复杂对象不是一蹴而就的,需要按照一定的步骤... 阅读全文
posted @ 2008-08-15 11:05 goldany 阅读(242) 评论(0) 推荐(0)
2.Abstract Factory(抽象工厂模式、工具箱kit)
摘要:Abstract Factory(抽象工厂模式、工具箱kit)是所有形态的工厂模式中最为抽象和最具一般性的一种形态,通过抽象工厂提供的接口,客户端不必指定产品的具体类型就能创建多个产品足(product families)中的产品对象。适用情况:1.一个系统必须与他的产品类如何构建、组合及表现无关。2.一个系统必须与各个产品族中的一个族关联。3.同意产品族的相关产品是共同使用的,这个是重要限制必须... 阅读全文
posted @ 2008-08-15 10:32 goldany 阅读(262) 评论(0) 推荐(0)
1.Factory Method (工厂方法模式、虚构造子模式、多态工厂模式)
摘要:Factory Method (工厂方法模式、虚构造子模式、多态工厂模式):定义创建对象的接口,并由派生类决定那一个类来创建实例。即工厂方法将创建对象的责任委托(延迟)到了派生类创建。适用情况:1.当一个类无法事先知道她所必须创建的对象的类的时候。2.当一个类要让其派生类决定构建对象时。3.当类将创建对象的职责委托给多个协助他的派生类之一,同时你希望通过所委托的派生类来集中管理对象创建逻辑时。由此... 阅读全文
posted @ 2008-08-14 18:03 goldany 阅读(318) 评论(0) 推荐(0)
行为型模式编程
摘要:行为模式是对在不同对象之间划分算法和职责的抽象化。 行为模式分类: 1.类的行为模式:使用继承机制在类间分配行为。 2.对象的行为模式:使用对象合成而不是来分配行为。 理解关键点: 1.行为模式不仅描述对象或类本身,还描述他们之间的交互。 2.这些模式涉及到在运行期不易掌握的复杂的控制流,从流程控制到对象互动是此类模式的特点。 3.封装变化是很多行为模式的主题。当一个程序的某个方面的特性经... 阅读全文
posted @ 2008-08-14 17:23 goldany 阅读(197) 评论(0) 推荐(0)
结构型模式编程
摘要:结构型模式考虑的是类及对象如何组合成更大的结构。 结构模式的分类: 1.类的结构模式:使用继承机制来组合接口或实现。 2.对象的结构模式:描述如何通过组合对象产生新功能的方法,是动态的,因为他可以在运行期随时改变对象的组合能力,这是类结构无法达到的。 尽管各个模式的目的截然不同,但却具有互补性。如果能结合使用则能获得意想不到的效果。 阅读全文
posted @ 2008-08-14 09:41 goldany 阅读(167) 评论(0) 推荐(0)
创建型模式概述
摘要:创建型模式编程(目的:抽象对象的实例化过程) 所有的创建型模式均封装有关系统所使用的具体类的逻辑。创建型模式隐藏这些类如何建立实例以及如何共同工作。所用的系统大致了解的对象是他们由抽象层次所定义的接口。创建型模式让你可以广泛的改变结构及功能来产生对象配置系统。这种配置过程可以是静态的(编译期)也可以是动态的(运行期)。 创建型模式的分类: 1.类创建型模式: 使用继承... 阅读全文
posted @ 2008-08-13 17:27 goldany 阅读(334) 评论(0) 推荐(0)