没有合适的资源?快使用搜索试试~ 我知道了~
java设计模式之Factory借鉴.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 156 浏览量
2021-12-25
20:25:42
上传
评论
收藏 138KB PDF 举报
温馨提示
试读
7页
java设计模式之Factory借鉴.pdf
资源推荐
资源详情
资源评论
java 设计模式之 Factory
定义 :提供创建对象的接口 .
为何使用 ?
工厂模式是我们最常用的模式了 ,著名的 Jive 论坛 ,就大量使用了工厂模式,工厂模式在 Java 程序系统可以
说是随处可见。
为什么工厂模式是如此常用?因为工厂模式就相当于创建实例对象的 new,我们经常要根据类 Class 生成实
例对象,如 A a=new A() 工厂模式也是用来创建实例对象的,所以以后 new 时就要多个心眼,是否可以考
虑实用工厂模式, 虽然这样做, 可能多做一些工作,但会给你系统带来更大的可扩展性和尽量少的修改量。
我们以类 Sample 为例, 如果我们要创建 Sample的实例对象 :
Sample sample=new Sample();
可是,实际情况是,通常我们都要在创建 sample 实例时做点初始化的工作 ,比如赋值 查询数据库等。
首先,我们想到的是,可以使用 Sample 的构造函数,这样生成实例就写成 :
Sample sample=new Sample(参数 );
但是,如果创建 sample 实例时所做的初始化工作不是象赋值这样简单的事,可能是很长一段代码,如果也
写入构造函数中,那你的代码很难看了(就需要 Refactor 重整)。
为什么说代码很难看,初学者可能没有这种感觉,我们分析如下,初始化工作如果是很长一段代码,说明
要做的工作很多,将很多工作装入一个方法中,相当于将很多鸡蛋放在一个篮子里,是很危险的,这也是
有背于 Java 面向对象的原则,面向对象的封装 (Encapsulation)和分派 (Delegation) 告诉我们,尽量将长的代
码分派 “切割 ”成每段,将每段再 “封装 ”起来 (减少段和段之间偶合联系性 ),这样,就会将风险分散,以后如
果需要修改,只要更改每段,不会再发生牵一动百的事情。
在本例中, 首先, 我们需要将创建实例的工作与使用实例的工作分开 , 也就是说,让创建实例所需要的大量
初始化工作从 Sample 的构造函数中分离出去。
这时我们就需要 Factory 工厂模式来生成对象了,不能再用上面简单 new Sample(参数 )。还有 ,如果 Sample
有个继承如 MySample, 按照面向接口编程 ,我们需要将 Sample 抽象成一个接口 .现在 Sample 是接口 ,有两个
子类 MySample 和 HisSample .我们要实例化他们时 ,如下 :
Sample mysample=new MySample();
Sample hissample=new HisSample();
随着项目的深入 ,Sample 可能还会 "生出很多儿子出来 ", 那么我们要对这些儿子一个个实例化 ,更糟糕的是 ,
可能还要对以前的代码进行修改 :加入后来生出儿子的实例 .这在传统程序中是无法避免的 .
但如果你一开始就有意识使用了工厂模式 ,这些麻烦就没有了 .
资源评论
wxj15659998286
- 粉丝: 1
- 资源: 10万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功