注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

无线时代辐射无穷

抓紧生宝宝,小心辐射

 
 
 

日志

 
 

创建模式之builder模式  

2009-07-29 09:30:20|  分类: 设计模式 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

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

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

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

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

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

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

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

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

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

<>
    1. public interface ISysInstallBuilder {   
    2.        
    3. public void backupdata();   
    4.     public void formatDisk();   
    5. public void copyData();   
    6.     public void installUsefulTool();   
    7. <>
    8. }   
      1. Y先生:这是一个接口,下面我来实现安装windows xp 的实现:

        <>
        1. public class WinXpInstallBuilder implements ISysInstallBuilder {   
        2.   
        3. public void backupdata() {   
        4.         // TODO Auto-generated method stub   
        5. //blalalala....   
        6.     }   
        7.     public void formatDisk() {   
        8. // TODO Auto-generated method stub   
        9.   
        10. <>
        11.   
        12. public void copyData() {   
        13.         // TODO Auto-generated method stub   
        14.     }   
        15.     public void installUsefulTool() {   
        16. // TODO Auto-generated method stub   
        17.   
        18. <>
        19.   
        20. <>
          1. Q女士:嗯,通过这个类我就能安装系统了:

            <>
            1. public static void main(String[] args) {   
            2.        
            3. new WinXpInstallBuilder();   
            4.     builder.backupdata();   
            5. <>
            6.     builder.formatDisk();   
            7. <>
            8.        
            9. <>
              1. Y先生:你看,你弄错了吧!格式化应该在复制数据之前。先别急,看看下面的:

                <>
                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. <>
                14.         builder.formatDisk();   
                15. <>
                16.         builder.installUsefulTool();   
                17. <>
                18.        
                19. <>
                  1. Q 女士:嗯,我明白你的意思了,我以后就用这个类来安装系统就行了,对吧:

                    <>
                    1. public static void main(String[] args) {   
                    2.        
                    3. new SysInstallDirector(   
                    4.                         new WinXpInstallBuilder());   
                    5. <>
                    6.        
                    7. <>
            10.   评论这张
               
              阅读(364)| 评论(0)
              推荐 转载

              历史上的今天

              评论

              <#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
               
               
               
               
               
               
               
               
               
               
               
               
               
               

              页脚

              网易公司版权所有 ©1997-2017