第八章 工厂方法 第九章 原型模式 第十章 模板方法 第十一章 迪米特法则
来源:互联网 发布:网络云音乐 编辑:程序博客网 时间:2024/06/09 15:13
简单工厂最大有点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了集体产品的依赖。
工厂方法定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到子类。
工厂方法模式实现时,客户端需要决定实例化哪一个工厂来实现运算类,选择判断的问题还是存在的,也就是说,工厂方法把简单工厂的内部逻辑判断移到了客户端代码进行,你想要加功能,本来是改工厂类的,而现在是修改客户端。
原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
原型模式其实就是从一个对象再创建另外一个可以定制的对象,并且不需要知道任何创建的细节。也就是实现一个带有clone方法的接口 通过这个接口可以返回对象的一个深拷贝或者是浅拷贝。深拷贝是由一层层的潜拷贝构成的,在使用深拷贝的时候对于私有对象可以建立私有的构造函数,只允许clone函数访问。
模板方法:定义一个操作中算法的骨架,而将一些步骤延伸到子类中,模板方法似的子类可以不改变一个算法的结构即可以重新定义该算法的某些特定步骤。
模板方法就是抽象不变的行为迁移到超类,去掉子类重复的代码。
迪米特法则也叫最小知识原则,如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用,如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发。
工厂方法定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到子类。
工厂方法模式实现时,客户端需要决定实例化哪一个工厂来实现运算类,选择判断的问题还是存在的,也就是说,工厂方法把简单工厂的内部逻辑判断移到了客户端代码进行,你想要加功能,本来是改工厂类的,而现在是修改客户端。
原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
原型模式其实就是从一个对象再创建另外一个可以定制的对象,并且不需要知道任何创建的细节。也就是实现一个带有clone方法的接口 通过这个接口可以返回对象的一个深拷贝或者是浅拷贝。深拷贝是由一层层的潜拷贝构成的,在使用深拷贝的时候对于私有对象可以建立私有的构造函数,只允许clone函数访问。
模板方法:定义一个操作中算法的骨架,而将一些步骤延伸到子类中,模板方法似的子类可以不改变一个算法的结构即可以重新定义该算法的某些特定步骤。
模板方法就是抽象不变的行为迁移到超类,去掉子类重复的代码。
迪米特法则也叫最小知识原则,如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用,如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发。
- 第八章 工厂方法 第九章 原型模式 第十章 模板方法 第十一章 迪米特法则
- Pointers on C(第八章 第九章 第十章 第十一章 第十二章)
- 大话设计模式之五:6~10章(装饰模式 、代理模式、工厂方法模式、原型模式、模板方法模式)
- 第十章 考题抄错会做也白搭-模板方法模式(读书笔记)
- 第十章 考题抄错会做也白搭—模板方法模式
- 第八章 模版方法模式
- 第八章 雷锋依然在人间-工厂方法模式(读书笔记)
- 第八章 雷锋依然在人间---工厂方法模式(读书笔记)
- 第九章 简历复印—原型模式
- 第八话-工厂方法模式
- 大话设计模式-----(三)工厂方法模式、原型模式、模板方法模式
- 原型模式、模板方法模式
- 第八章和第九章
- 程序员法则 - 第九章 对手
- 第十周第八章
- 程序员法则 - 第八章 联谊
- 第十一章 无熟人难办事—迪米特法则
- 第 5 章 工厂方法模式
- C++ for Mathematicians: An Introduction for Students and Professionals
- Guerrilla Capacity Planning: A Tactical Approach to Planning for Highly Scalable Applications and Se
- Software Evolution and Feedback: Theory and Practice
- 100 个高质量的 XHTML/CSS 模板(中)
- 利用Cache解决连接池占满的问题
- 第八章 工厂方法 第九章 原型模式 第十章 模板方法 第十一章 迪米特法则
- Building a Web Site for Dummies
- QVector QList QLinkedList
- Beginning J2ME: From Novice to Professional, Third Edition
- Intellij IDEA的web部署问题(端口8080被占用)
- 面试相关-非技术问题
- Java_ActionListener_Test
- Hacking GMail (ExtremeTech)
- 如何設定 Windows Live Writer(繁中) 來編寫 CSDN 部落格