设计模式之:Factory模式进化论(1)为什么要有工厂模式
来源:互联网 发布:js实现tab选项卡切换 编辑:程序博客网 时间:2024/06/04 18:25
谈到设计模式中的Factory模式,99%的人都会知道这个模式是干嘛的,当然也可能都有运用过这个设计模式.百度是这么告诉我的:"实例化对象,用工厂方法代替new操作",确实也是如此,工厂模式的确就是用来创建对象的,关于怎么通过工厂模式来创建对象这里就不在描述.这里主要描述一下为什么会有工厂模式,以及工厂模式的扩展形式
(1)为什么要有工厂模式?
要想知道为什么会有工厂模式,首先看一下一个在实际工作中经常碰到的调用场景:
在Application中会用到Shape类的一些方法,而且Circle以及Square的方法声明和Shape一样,因此在Application类中可以使用Circle以及Square的类的实例,这样就导致Application类需要依赖于Circle以及Square两个具体的实现类(违反了DIP原则)以及他们所在的包.如果一个包依赖的包越多,那么这个包的稳定性将受到它所依赖的包的影响.当一个应用中包的数量非常的大时,这种包与包的耦合关系会导致整个应用维护的困难.
如果引入了工厂模式,看看会变的怎么样?先看一下类图.
在这个结构图中,Application对Shape现实类的依赖不需要通过new的方式去实现,而是直接调用了ShapeFactory的方法,虽然ShapeFactory的实现类依赖了Cricle2以及Square2,但是对这两个现实类的依赖被集中在了ShapeFactory的包中.这样就解决了对Shape具体现实类的依赖问题.
- 设计模式之:Factory模式进化论(1)为什么要有工厂模式
- 设计模式之:Factory模式进化论(2)扩展
- 设计模式之Factory工厂模式
- 设计模式之工厂模式Factory
- 设计模式之Factory工厂模式
- java设计模式之工厂模式(Factory)
- 设计模式之--工厂模式(Factory)
- 设计模式之工厂模式(Factory)
- 设计模式之工厂模式Factory
- 设计模式之(一)工厂模式Factory
- 设计模式之Factory(工厂模式)
- java设计模式之工厂模式(Factory)
- 设计模式之--工厂模式(Factory)
- 设计模式之工厂模式(factory)
- 设计模式之简单工厂模式,factory
- C++设计模式之Factory(工厂)模式
- java设计模式之工厂模式Factory
- 设计模式之工厂模式-factory
- java设计模式——适配器模式
- vim的一些技巧(不断更新)
- 软件项目管理系统-经费报销-出差费
- 音视频学习博客
- 利用constructor 统一判断 类对象的具体类型(包括自定义类型的对象)
- 设计模式之:Factory模式进化论(1)为什么要有工厂模式
- Android中TextView详解
- 多态初识
- 冯诺依曼解决的一个抛硬币问题
- JVM监控工具介绍jstack, jconsole, jinfo, jmap, jdb, jstat
- Window cmd 命令python ,django-admin.py,gvim配置
- Linux管道执行ftp
- 从书中查找某个单词出现的频率
- SendMessage 和 PostMessage 的区别