首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

《狂言设计模式》笔记(四)

2012-06-20 
《大话设计模式》笔记(四)第八章 工厂方法模式u 简单工厂模式的最大 优点在于工厂类中包含了必要的判断,根据

《大话设计模式》笔记(四)

第八章 工厂方法模式

u 简单工厂模式的最大 优点在于工厂类中包含了必要的判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖。

u 工厂方法模式,定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。

u 工厂方法模式实现时,客户端需要决定实例化哪一个工厂来实现运算类,选择判断的问题还是存在的,也就是说,工厂方法把简单工厂的内部逻辑判断移到了客户端代码来进行。你想要加功能,本来是改工厂类的,而现在是修改客户端。

u 工厂方法克服了简单工厂违背开放-封闭原则的缺点,又保持了封闭对象创建过程的优点。

第九章 原型模式

u 原型模式,用原型实例指定创建对象的各类,并且通过拷贝这些原型创建新的对象。

u 实现clone方法就可以完成原型模式。Java、.NET、PHP都有。

u 一般在初始化的信息不发生变化的情况下,克隆是最好的办法。这既隐藏了对象创建的细节,又对性能是大大的提高。等于是不用重新初始化对象,而是动态地获得对象运行时的状态。

u MemberwiseClone()方法是这样,如果字段是值类型的,则对该字段执行逐位复制,如果字段是引用类型,则复制引用但不引用的对象;因此,原始对象用项复本引用同一对象。.NET中有这个方法。

u ‘浅复制’,被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用都仍然指向原来的对象。

u ‘深复制’,把引用对象的变量指向过的新对象,而不是原有的被引用的对象。

u 数据集对象DataSet,它就有Clone()方法和Copy()方法,Clone()方法用来DataSet的结构,但不DataSet的数据,实现了原型模式的复制。Copy()方法不但复制结构,也复制数据,其实就是实现了原型模式的深复制。

------------------------------------------------

我的独立博客:壊小子 - http://www.zyblog.net/

本文链接:http://www.zyblog.net/post-47.html

欢迎转载,转载请注明本文来源。

热点排行