2007-07-09
(3)创建模式之builder模式
关键字: 模式, pattern
这天,Y先生正在工作,突然Q女士来电话了:“老公,家里的电脑坏了,好像得重新安装系统!”
Y先生最怕重装系统,他只好说:“老婆,等我下班回家再给你装吧,太麻烦了,怕你弄不好。”
Q女士:怎么重装系统这么麻烦吗?好吧,晚上你早点回来。
晚上,Y先生和Q女士坐在电脑前,Y先生首先备份了需要的数据,然后使用光盘安装系统,格式化,安装,安装驱动。。。。。
终于1个小时以后,系统安装完毕!
Y先生擦了擦汗:好了,终于弄完了。
Q女士:这么麻烦啊,,,可是以后如果电脑再出问题,我想自己安装系统怎么办呢?
Y先生想了想,恩,这我可得想想办法。看来我们需要做一件复杂的事情(安装系统),以及如何去执行这个复杂的事情。
好吧,我们先来创建一个东西去做复杂的事情:
java 代码
- public interface ISysInstallBuilder {
- public void backupdata();
- public void formatDisk();
- public void copyData();
- public void installUsefulTool();
- }
Y先生:这是一个接口,下面我来实现安装windows xp 的实现:
java 代码
- public class WinXpInstallBuilder implements ISysInstallBuilder {
- public void backupdata() {
- // TODO Auto-generated method stub
- //blalalala....
- }
- public void formatDisk() {
- // TODO Auto-generated method stub
- }
- public void copyData() {
- // TODO Auto-generated method stub
- }
- public void installUsefulTool() {
- // TODO Auto-generated method stub
- }
- }
Q女士:嗯,通过这个类我就能安装系统了:
java 代码
- public static void main(String[] args) {
- WinXpInstallBuilder builder = new WinXpInstallBuilder();
- builder.backupdata();
- builder.copyData();
- builder.formatDisk();
- builder.installUsefulTool();
- }
Y先生:你看,你弄错了吧!格式化应该在复制数据之前。先别急,看看下面的:
java 代码
- public class SysInstallDirector {
- private ISysInstallBuilder builder;
- public SysInstallDirector(ISysInstallBuilder builder) {
- // TODO Auto-generated constructor stub
- this.builder = builder;
- }
- public void installSystem() {
- builder.backupdata();
- builder.formatDisk();
- builder.copyData();
- builder.installUsefulTool();
- }
- }
Q 女士:嗯,我明白你的意思了,我以后就用这个类来安装系统就行了,对吧:
java 代码
- public static void main(String[] args) {
- SysInstallDirector director = new SysInstallDirector(
- new WinXpInstallBuilder());
- director.installSystem();
- }
Q女士:嗯,这样当我做这件复杂的事情的时候时,就不怕把它弄错了!
评论
uhlan
2007-07-12
哈哈,挺有意思的
yananay
2007-07-12
安装出来得系统,其实就是创建出来得东西了 :-)
huangyh
2007-07-10
恩,这种讲解方式挺有趣的:)
builder模式是个创建 型模式 ,builder要能创建出产品,你的例子好象没反映出这点.
builder模式是个创建 型模式 ,builder要能创建出产品,你的例子好象没反映出这点.
发表评论
- 浏览: 144945 次

- 详细资料
搜索本博客
我的相册
tdd
共 3 张
共 3 张
最新评论
-
网站的静态页面生成方案
笑 喘 写道yananay 写道 把对 index.do 请求后的结果保存成一个 ...
-- by tianmo2008 -
网站的静态页面生成方案
我曾经尝试过在ASP.NET中做这样的事情,用某户访问某个页面时,先从配置里读取 ...
-- by 活靶子 -
网站的静态页面生成方案
对于CMS静态发布,我用的是用Veocity模板去 生产的,根据一定的业务逻辑去 ...
-- by pablo3518 -
聊聊大连新的残疾人制度
政府张口要钱,什么理由已经不重要了。。。
-- by issppt -
请先不要讨论细节好吗
[quote="ayis"][quote="kimmking"][quote=" ...
-- by gzstyxb






评论排行榜