摘要:
前言 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 当你需要从A的实例得到一份与A内容相同,但是又互不干扰的实例的话,就需要使用原型模式。 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。这个其实和C++的拷贝构造函数的作用是相似的(但不相同),实际上就是动态抽取 阅读全文
摘要:
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 以建造小人为例子,一共需建造6个部分,头部、身体、左右手、左右脚。与工厂模式不同,建造者模式是在导向者的控制下一步一步构造产品的。建造小人就是在控制下一步步构造出来的。创建者模式可以能更精细的控制构建过程,从而能更精细的控制 阅读全文
摘要:
工厂模式分为三类:简单工厂模式、工厂方法模式、抽象工厂模式。 简单工厂模式 特点是需要在工厂类中做判断,从而创造相应的产品。当增加新的产品时,就需要修改工厂类。 比如一家生产肥皂的工厂,它只有一家工厂,能够生产两种形状的白色肥皂,客户需要什么形状的,需要显示告诉工厂。 UML 工厂方法模式 简单工厂 阅读全文
摘要:
定义 适配器模式是将一个类的接口转换为客户希望的另一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。它包括类适配器和对象适配器。 场景 系统的数据和行为都正确,但接口不符时,我们应该考虑使用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模式主要应用于希望复用一些现 阅读全文
摘要:
用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 以租房为例子,如果没有房屋中介,那么房客要自己找房东,而房东也要自己找房客,非常不方便。有了房屋中介机构就方便了,房东可以把要出租的房屋信息放到中介机构,而房客可以去中介机 阅读全文
摘要:
代理模式是为其它对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用 种类 虚拟(virtual)代理 当我们需要使用一个资源消耗较大的对象,我们用到它的时候,才去真正创建它。 远程(remote)代理 为 阅读全文