文档章节

简单工厂-设计模式

douglaswei
 douglaswei
发布于 2014/06/21 15:48
字数 341
阅读 26
收藏 0

简单工厂-设计模式

简单工厂-设计模式是client通过工厂Factory类获取所需的对象实例,不直接通过new这种耦合性比较强的方式来生成对象。client端持有接口应用,Factory根据client需求选择接口的具体实现,更换接口实现只需修改Factory。一个Factory可以有个多个生成不同对象的静态方法,方法名一般为get+interface或者create+interface或者new+Factory。一个Factory类中生成的对象应该是某一个类系,不要将所以不同类系合在同一个Factory类中,显得Factory不干净,容易误解。client获取对象实例情况如下:client -> Factory ->InterfaceImpl.

一般在可能需要替换接口实现的地方使用,例如:log日志实现,统计方法实现。当多处使用到接口且可能需要替换实现时,好处就非常明显。

简单工厂:分离使用和接口实现,通过Factory类选择实现,实现的修改不影响到client的使用。我们很多时候的痛苦来源于需求的修改,代码应该做到需求更新只涉及到尽可能少的地方修改,避免引入bug,即使以牺牲性能为代价也不为过。

© 著作权归作者所有

共有 人打赏支持
下一篇: VIM学习笔记
douglaswei
粉丝 8
博文 59
码字总数 39760
作品 0
珠海
架构师
私信 提问
设计模式梳理(一)

设计模式梳理(一) 总体来说设计模式分为三大类: @案例源码地址:https://gitlab.com/lxqxsyu/DisgnPattern 创建型模式 简单工厂模式 工厂类是整个模式的关键。它包含必要的判断逻辑,能够...

lxq_xsyu
2017/11/02
0
0
PHP设计模式(一):简介及创建型模式

我们分三篇文章来总结一下设计模式在PHP中的应用,这是第一篇创建型模式。 一、设计模式简介 首先我们来认识一下什么是设计模式: 设计模式是一套被反复使用、容易被他人理解的、可靠的代码设...

juhenj
2014/05/15
228
2
简单工厂、工厂方法、抽象工厂、策略模式、策略与工厂的区别

转载:原地址http://www.cnblogs.com/zhangchenliang/p/3700820.html 简单工厂、工厂方法、抽象工厂、策略模式、策略与工厂的区别 结合简单示例和UML图,讲解工厂模式简单原理。 一、引子 话说...

法斗斗
05/08
0
0
23种设计模式(3):抽象工厂模式

定义:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。 类型:创建类模式 类图: 抽象工厂模式与工厂方法模式的区别 抽象工厂模式是工厂方法模式的升级版本,他用来...

LCZ777
2014/07/05
0
0
咕泡-工厂 Factory设计模式笔记

##查看代码:https://gitee.com/jly521/factoryNew.git 个人感悟: 设计模式都是处理复杂问题的,如果问题本身很简单,使用设计模式反而累赘,增加了开发的复杂性 遇到最简单的情况,直接 ne...

职业搬砖20年
08/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

stylus

stylus基础教程,stylus实例教程,stylus语法总结

miaojiangmin
25分钟前
1
0
PHP生成CSV之内部换行

当我们使用PHP将采集到的文件内容保存到csv文件时,往往需要将采集内容进行二次过滤处理才能得到需要的内容。比如网页中的换行符,空格符等等。 对于空格等处理起来都比较简单,这里我们单独...

豆花饭烧土豆
今天
2
0
使用 mjml 生成 thymeleaf 邮件框架模板

发邮件算是系统开发的一个基本需求了,不过搞邮件模板实在是件恶心事,估计搞过的同仁都有体会。 得支持多种客户端 支持响应式 疼彻心扉的 outlook 多数客户端只支持 inline 形式的 css 布局...

郁也风
今天
8
0
让哲学照亮我们的人生——读《医务工作者需要学点哲学》有感2600字

让哲学照亮我们的人生——读《医务工作者需要学点哲学》有感2600字: 作者:孙冬梅;以前读韩国前总统朴槿惠的著作《绝望锻炼了我》时,里面有一句话令我印象深刻,她说“在我最困难的时期,...

原创小博客
今天
5
0
JAVA-四元数类

public class Quaternion { private final double x0, x1, x2, x3; // 四元数构造函数 public Quaternion(double x0, double x1, double x2, double x3) { this.x0 = ......

Pulsar-V
今天
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部