builder模式

  1. 这天,Y先生正在工作,突然Q女士来电话了:“老公,家里的电脑坏了,好像得重新安装系统!”

    Y先生最怕重装系统,他只好说:“老婆,等我下班回家再给你装吧,太麻烦了,怕你弄不好。”

    Q女士:怎么重装系统这么麻烦吗?好吧,晚上你早点回来。

    晚上,Y先生和Q女士坐在电脑前,Y先生首先备份了需要的数据,然后使用光盘安装系统,格式化,安装,安装驱动。。。。。

    终于1个小时以后,系统安装完毕!

    Y先生擦了擦汗:好了,终于弄完了。

    Q女士:这么麻烦啊,,,可是以后如果电脑再出问题,我想自己安装系统怎么办呢?

    Y先生想了想,恩,这我可得想想办法。看来我们需要做一件复杂的事情(安装系统),以及如何去执行这个复杂的事情。

    好吧,我们先来创建一个东西去做复杂的事情:

  2. public interface ISysInstallBuilder {   
  3.        
  4.     public void backupdata();   
  5.     public void formatDisk();   
  6.     public void copyData();   
  7.     public void installUsefulTool();   
  8.        
  9. }   

Y先生:这是一个接口,下面我来实现安装windows xp 的实现:

java 代码
  1. public class WinXpInstallBuilder implements ISysInstallBuilder {   
  2.   
  3.     public void backupdata() {   
  4.         // TODO Auto-generated method stub   
  5.         //blalalala....   
  6.     }   
  7.   
  8.     public void formatDisk() {   
  9.         // TODO Auto-generated method stub   
  10.   
  11.     }   
  12.   
  13.     public void copyData() {   
  14.         // TODO Auto-generated method stub   
  15.   
  16.     }   
  17.   
  18.     public void installUsefulTool() {   
  19.         // TODO Auto-generated method stub   
  20.   
  21.     }   
  22.   
  23. }  

Q女士:嗯,通过这个类我就能安装系统了:

java 代码
  1. public static void main(String[] args) {   
  2.        
  3.     WinXpInstallBuilder builder = new WinXpInstallBuilder();   
  4.     builder.backupdata();   
  5.     builder.copyData();   
  6.     builder.formatDisk();   
  7.     builder.installUsefulTool();   
  8.        
  9. }  

Y先生:你看,你弄错了吧!格式化应该在复制数据之前。先别急,看看下面的:

java 代码
  1. public class SysInstallDirector {   
  2.        
  3.     private ISysInstallBuilder builder;   
  4.        
  5.     public SysInstallDirector(ISysInstallBuilder builder) {   
  6.         // TODO Auto-generated constructor stub   
  7.            
  8.         this.builder = builder;   
  9.     }   
  10.        
  11.     public void installSystem() {   
  12.            
  13.         builder.backupdata();   
  14.         builder.formatDisk();   
  15.         builder.copyData();   
  16.         builder.installUsefulTool();   
  17.     }   
  18.        
  19. }  

Q 女士:嗯,我明白你的意思了,我以后就用这个类来安装系统就行了,对吧:

java 代码
  1. public static void main(String[] args) {   
  2.        
  3.     SysInstallDirector director = new SysInstallDirector(   
  4.                         new WinXpInstallBuilder());   
  5.     director.installSystem();   
  6.        
  7. }  

Q女士:嗯,这样当我做这件复杂的事情的时候时,就不怕把它弄错了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值