第八章 工厂方法 第九章 原型模式 第十章 模板方法 第十一章 迪米特法则

来源:互联网 发布:网络云音乐 编辑:程序博客网 时间:2024/06/09 15:13
简单工厂最大有点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了集体产品的依赖。
工厂方法定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到子类。
工厂方法模式实现时,客户端需要决定实例化哪一个工厂来实现运算类,选择判断的问题还是存在的,也就是说,工厂方法把简单工厂的内部逻辑判断移到了客户端代码进行,你想要加功能,本来是改工厂类的,而现在是修改客户端。

原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
原型模式其实就是从一个对象再创建另外一个可以定制的对象,并且不需要知道任何创建的细节。也就是实现一个带有clone方法的接口 通过这个接口可以返回对象的一个深拷贝或者是浅拷贝。深拷贝是由一层层的潜拷贝构成的,在使用深拷贝的时候对于私有对象可以建立私有的构造函数,只允许clone函数访问。

模板方法:定义一个操作中算法的骨架,而将一些步骤延伸到子类中,模板方法似的子类可以不改变一个算法的结构即可以重新定义该算法的某些特定步骤。
模板方法就是抽象不变的行为迁移到超类,去掉子类重复的代码。

迪米特法则也叫最小知识原则,如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用,如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发。


原创粉丝点击