工厂模式
来源:互联网 发布:淘宝卖家插件推荐 编辑:程序博客网 时间:2024/06/04 23:35
部分参考:
http://blog.csdn.net/jason0539/article/details/23020989
在面向对象编程时,总是通过new来创建一个对象实例。但有时,new对象也会存在一些问题。比如, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象。 在这些情况,新对象的建立就是一个 “过程”,不仅是一个操作,像一部大机器中的一个齿轮传动。
模式的问题:你如何能轻松方便地构造对象实例,而不必关心构造对象实例的细节和复杂过程呢?
所以说,工厂模式可以使用在任何生成复杂对象的地方。
1.在编码时不能预见需要创建哪种类的实例。
2.系统不应依赖于产品类实例如何被创建、组合和表达的细节
分类
工厂模式主要是为创建对象提供过渡的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。每次实例化这些类的时候不需要new多次,只需要调用工厂类的对应方法即可实例化这些类。
工厂模式分为三种:
简单工厂模式、工厂方法模式,抽象工厂模式。
三种模式从上到下逐步抽象,更具一般性。还有一种就是将简单抽象模式看作工厂方法模式的一种特例。
简单工厂模式(Simple Factory)
简单工厂模式,又称为静态工厂方法模式,由三种角色组成:
工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑,根据逻辑不通,产生具体的工厂产品。工厂类是根据提供给它的参数,返回的几个可能产品中的 一个类的实例。
抽象产品角色:它一般是具体产品继承的父类或者实现的接口。在java中由接口或者抽象类来实现。
具体产品角色:工厂类所创建的对象就是此角色的实例。在java中由一个具体类实现。
举个例子:
工厂方法模式(Factory Method)
抽象工厂模式(Abstract Factory)
- 工厂模式 -- 工厂方法
- 工厂模式 -- 抽象工厂
- 工厂模式-简单工厂
- 工厂模式-工厂方法
- 工厂模式:静态工厂
- 工厂模式-简单工厂
- 工厂模式-抽象工厂
- 工厂模式-工厂方法
- 工厂 > 工厂方法模式
- 工厂模式-静态工厂
- 工厂模式-抽象工厂
- 工厂模式
- 工厂模式
- 工厂模式
- 工厂模式
- 工厂模式
- 工厂模式
- 工厂模式
- 【总结】用户权限设置和进程权限提升
- JVM
- Spring技术内幕——AOP的实现
- Dubbo 发布恢复维护后的第一个版本 2.5.4
- 搭建confluence环境
- 工厂模式
- A/B 测试的基本概念举例理解以及具体实现方法【传统A/B测试基于后端的 A/B 测试(Back-end AB test),现在基本上基于前端js在客户端进行分流,有更多优点,请看里面】
- SQL Server数据库表锁定原理以及如何解除表的锁定
- libpcap--GTPv2协议的cap文件解析
- Android 性能优化
- C
- python里创建任务执行一半时取消任务执行
- JS跑马灯效果实现(很好用)
- python 迭代器