工厂模式
2016-07-27 15:35
246 查看
一个类或对象往往会包含别的对象,在创建这种成员对象时,您可能习惯于使用常规方式,用new关键字和类构造函数。问题在于这种会导致相关的两上类之间产生依赖性。创建工厂的作用是把有关创建成员对象的过程集中在一个地方管理,对象和它的成员对象之间解耦;
真正的工厂模式和简单工厂模式的区别在于,它不是别外使用一个类或对象来创建对象,而是使用一个子类。 按照正式定义,工厂是一个将其成员对象的实例华推迟到子类中进行的类。
工厂模式的适用场合1、创建一些用不同方式实现同一接口的对象,那么可以使用一个工厂方法模式 或简单工厂对象来简化选择实现的过程。这种选择可以是明确进行的,也可以是隐含的。2、如果对象需要进行复杂并且彼此相关的设置,那么使用工厂模式可以减少每种对象所需的代码量。如果这种设置只需要为特定类型的所有实例执行一次,这种作用尤其突出。把这种设置代码放到类的构造函数中并不是一种高效的做法,这是原因即便设置工作已经完成,每次创建新实例的时候这些代码还是会执行,而且这样做会把设置代码分散到不同的类中。工作方法非常适合于这种场合。它可以实例化所有需要的对象之前一次性地进行设置,无论有多少不同的类会被实例化,这种办法都可以让设置代码集中在一个地方。
memoizing:记住的意思
真正的工厂模式和简单工厂模式的区别在于,它不是别外使用一个类或对象来创建对象,而是使用一个子类。 按照正式定义,工厂是一个将其成员对象的实例华推迟到子类中进行的类。
工厂模式的适用场合1、创建一些用不同方式实现同一接口的对象,那么可以使用一个工厂方法模式 或简单工厂对象来简化选择实现的过程。这种选择可以是明确进行的,也可以是隐含的。2、如果对象需要进行复杂并且彼此相关的设置,那么使用工厂模式可以减少每种对象所需的代码量。如果这种设置只需要为特定类型的所有实例执行一次,这种作用尤其突出。把这种设置代码放到类的构造函数中并不是一种高效的做法,这是原因即便设置工作已经完成,每次创建新实例的时候这些代码还是会执行,而且这样做会把设置代码分散到不同的类中。工作方法非常适合于这种场合。它可以实例化所有需要的对象之前一次性地进行设置,无论有多少不同的类会被实例化,这种办法都可以让设置代码集中在一个地方。
memoizing:记住的意思
相关文章推荐
- JVM参数,启动jar 包以及 启动tomcat的 JVM参数设置
- vm 的异常
- jQuery hover方法
- Solr 删除索引
- 汇编之算术移位指令
- 【通讯术语】RADIUS
- hdu 1527 取石子游戏 (威佐夫博奕)
- Node.js exports 和 require 两个对象
- hdu 4027(线段树区间开方求和)
- 你听说过哪些坑人 or 赚钱的歪点子?真是骗局太多,傻子都不够用啊!
- SqlServer_Sql防止注入
- 通用权限管理设计 之 数据库结构设计
- mariadb多源复制中只同步1个库
- Using Visual Studio to Debug JavaScript in IE
- 破解Idea 16注册机
- 相机模型与标定(十二)--opencv圆形标志点检测算法
- python 实战 登录注册
- html img图片标签alt和title属性
- 3326顺序表应用3:元素位置互换之移位算法
- 孤傲苍狼 只为成功找方法,不为失败找借口! javaweb学习总结(十五)——JSP基础语法 任何语言都有自己的语法,JAVA中有,JSP虽然是在JAVA上的一种应用,但是依然有其自己扩充的语