这里要说的是工厂方法模式。
1. 工厂方法模式的定义:工厂方法模式定义了创建对象的接口,但让子类来决定实例化哪个product类,推迟类的实例化到子类。
2. 工厂方法负责对象的创建,实际的对象创建在子类中进行。这使得父类的client code(调用工厂方法的代码)与子类的创建代码解藕。抽象方法在Creator的父类中定义,一般定义如下:
abstract Product factoryMethod(String type)
Creator子类必须实现工厂方法。实现了对interface编程而不是instance编程。符合“对扩展开放,对修改关闭”的OO原则。
3.工厂方法模式和简单工厂的区别:简单工厂父类has a factory,由factory来对product实例化。工厂方法模式中creator的父类中有一个抽象工厂方法,creator的子类负责实现这个方法即负责创建product实例。
4.工厂方法模式实现了依赖反转。如果不使用工厂方法模式,creator负责创建所有product子类,因此它依赖于所有具体的product子类。但工厂方法中creator和 product的子类都只依赖于抽象的product父类,实现了“依赖于接口,而不依赖于具体实现”的OO原则 。
5.依赖反转原则:
No variable should hold a reference to a concrete class.
不要用new,用工厂来创建。
No class should derive from a concrete class.
从接口继承,不要继承于具体类。
No method should override an implemented method of any of its base classes.
如果你重写父类已实现的方法,则你类并不是真正的抽象。父类实现的方法应该让所有子类共享。
这只是原则,并非法律!
简单工厂的好处:
1、充分利用了多态性不管什么具体产品都返回抽象产品。
2、充分利用了封装性,内部产品发生变化时外部使用者不会受到影响。
缺点是:如果增加了新的产品,就必须得修改工厂(Factory)。
这种没头没尾的文章确实不好,推荐一入篇好的设计模式的文章:
http://blog.csdn.net/xmouse/article/details/2281920
分享到:
相关推荐
又名: Head First Design Patterns 作者: (美)弗里曼(Freeman,E.) 副标题: Head First Design Patterns 简介 ······ 你不想重新发明车轮(或者更差的是,没有充气车胎的轮子),所以你从设计模式中寻求...
Head First Design Patterns 中文版 带目录 设计模式经典书籍
Head First Design Patterns(中文版)设计模式 java。 Head First Design Patterns(中文版) 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除 设计模式 ...
head first design patterns-head first 设计模式的英文原版;高清英文原版,非扫描
《HeadFirst Design Patterns》是设计模式领域中一本非常受欢迎的入门书籍,以其独特的教学方式深受读者喜爱。设计模式是软件工程中的一种最佳实践,它总结了在特定上下文中解决常见问题的经验和方法,使得开发者...
深入浅出设计模式(Head First Design Patterns)完整版,由本人精心整理网上的JPG版制作成PDF版供各位编程爱好者下载学习, 这部模式教程诙谐幽默,寓教于乐,实乃菜鸟成才必备之选。共分为11个压缩包,绝对的物有所...
深入浅出设计模式(Head First Design Patterns)完整版,由本人精心整理网上的JPG版制作成PDF版供各位编程爱好者下载学习,这部模式教程诙谐幽默,寓教于乐,实乃菜鸟成才必备之选。共分为9个压缩包,绝对的物有所值...
深入浅出设计模式(Head First Design Patterns)完整版,由本人精心整理网上的JPG版制作成PDF版供各位编程爱好者下载学习, 这部模式教程诙谐幽默,寓教于乐,实乃菜鸟成才必备之选。共分为11个压缩包,绝对的物有所...
《Head First Design Patterns》是一本深入浅出介绍设计模式的图书,由Eric Freeman、Elisabeth Freeman、Bert Bates和Kathy Sierra联合编写。本书结合认知科学原理和神经生物学研究,采用引导式教学方法,通过故事...
8模板方法模式封装算法 9选代器与组合模式管理良好的集合 10状态模式事物的状态 11代理模式控制对象访问 12复合模式模式中的模型 13与设计模式相处真实世界中的模式 附录A:剩下的模式 ...
例如工厂方法模式(Factory Method)、抽象工厂模式(Abstract Factory)等。 - **结构型模式**:用于处理类和对象的组合方式,让它们形成更大的结构。例如适配器模式(Adapter)、装饰器模式(Decorator)等。 - **...
《Head First Design Patterns》是设计模式领域中一本非常知名的书籍,尤其适合初学者入门。这本书以其独特的视觉风格和易于理解的讲解方式,帮助读者深入理解设计模式的核心概念和实际应用。Part2部分主要涵盖了...
### Head First Design Patterns:一种全新的学习方式 #### 一、引言 《Head First Design Patterns》是一本关于软件设计模式的经典教程,它以其独特的教学方法和深入浅出的讲解方式而受到广泛赞誉。本书由Eric ...
这本书的部分章节,即"Pages from Head First Design Patterns (英文高清版)_part1.rar",可能涵盖了以下几个主要的设计模式: 1. **工厂模式**:工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式,...
软件设计模式中文版 &head; first python 。
《Head First Design Patterns》是一本深受开发者喜爱的设计模式教程,英文版的影印版本提供了清晰易读的阅读体验。设计模式是软件工程中的一种最佳实践,它总结了在特定上下文中解决问题的常见方法,旨在提高代码的...
HeadFirst Design Pattern in C#
head first design patterns电子版本(第1部分)