<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    從趙本山的小品聯(lián)想到的Java設(shè)計(jì)模式

    春晚的小品中,宋丹丹問趙本山:把大象裝冰箱,總共分幾步?三步。至于哪三步,想必大家都會(huì)脫口而出。下面我就使用Java設(shè)計(jì)模式中的建造模式實(shí)現(xiàn)大象裝冰箱的方法。
    UML圖如下:

    抽象建造者角色

    /*
    *@author 我為J狂 建立日期 2007-4-19
    *
    */

    package net.blogjava.lzqdiy;

    public interface Make
    {
        
    void openDoor();//產(chǎn)生打開門的方法
        void putInto();//產(chǎn)生放進(jìn)去的方法
        void closeDoor();//產(chǎn)生關(guān)上門的方法
    }
    具體建造者角色
    /*
    *@author 我為J狂 建立日期 2007-4-19
    *
    */

    package net.blogjava.lzqdiy;
    /**
     * 產(chǎn)生使用冰箱的方法
     *
     
    */

    public class MakeFridgeMethod implements Make
    {
        
    private Method fridge;
        
    public  MakeFridgeMethod(String obj)
        
    {
            fridge
    =new FridgeMethod(obj);
        }

        
    public void closeDoor()
        
    {
            
    // TODO Auto-generated method stub
            fridge.closeDoor();
        }


        
    public void openDoor()
        
    {
            
    // TODO Auto-generated method stub
             fridge.openDoor();
        }


        
    public void putInto()
        
    {
            
    // TODO Auto-generated method stub
            fridge.putInto();
        }


    }

    /*
    *@author 我為J狂 建立日期 2007-4-19
    *
    */

    package net.blogjava.lzqdiy;
    /**
     * 產(chǎn)生使用抽屜的方法
     *
     
    */

    public class MakeDrawerMethod implements Make
    {
        
    private Method drawer; 
        
    public MakeDrawerMethod(String obj)
        
    {
            drawer
    =new DrawerMethod(obj);
        }

        
    public void closeDoor()
        
    {
            
    // TODO Auto-generated method stub
            drawer.closeDoor();
        }

        
        
    public void openDoor()
        
    {
            
    // TODO Auto-generated method stub
            drawer.openDoor();
        }


        
    public void putInto()
        
    {
            
    // TODO Auto-generated method stub
            drawer.putInto();
        }

    }

    抽象產(chǎn)品角色
    /*
    *@author 我為J狂 建立日期 2007-4-19
    *
    */

    package net.blogjava.lzqdiy;

    public interface Method
    {
        
    void openDoor();//產(chǎn)打開門的方法
        void putInto();//放進(jìn)去的方法
        void closeDoor();//關(guān)上門的方法
    }

    具體產(chǎn)品角色
    /*
    *@author 我為J狂 建立日期 2007-4-19
    *
    */

    package net.blogjava.lzqdiy;
    /**
     * 使用冰箱的方法
     *
     
    */

    public class FridgeMethod implements Method
    {
        
    private String obj;
        
        
    public FridgeMethod(String obj)
        
    {
            
    this.obj = obj;
        }


        
    public void closeDoor()
        
    {
            
    // TODO Auto-generated method stub
            System.out.println("把冰箱門關(guān)上!");
        }


        
    public void openDoor()
        
    {
            
    // TODO Auto-generated method stub
            System.out.println("把冰箱門打開!");
        }


        
    public void putInto()
        
    {
            
    // TODO Auto-generated method stub
            System.out.println(""+obj+"放進(jìn)去!");
        }

        
    }

    /*
    *@author 我為J狂 建立日期 2007-4-19
    *
    */

    package net.blogjava.lzqdiy;

    /**
     * 使用抽屜的方法
     *
     
    */

    public class DrawerMethod implements Method
    {

        
    private String obj;
        
        
    public DrawerMethod(String obj)
        
    {
            
    this.obj = obj;
        }


        
    public void closeDoor()
        
    {
            
    // TODO Auto-generated method stub
            System.out.println("把抽屜門關(guān)上!");
        }


        
    public void openDoor()
        
    {
            
    // TODO Auto-generated method stub
            System.out.println("把抽屜門打開!");
        }


        
    public void putInto()
        
    {
            
    // TODO Auto-generated method stub
            System.out.println(""+obj+"放進(jìn)去!");
        }

    }

    導(dǎo)演者角色

    /*
     *@author 我為J狂 建立日期 2007-4-19
     *
     
    */

    package net.blogjava.lzqdiy;

    public class Process
    {
        
    private Make make;

        
    private String obj;

        
    public Process(String obj)
        
    {
            
    this.obj = obj;
        }


        
    public void getFridgeSteps()
        
    {
            make 
    = new MakeFridgeMethod(obj);
            System.out.print(
    "第一步:");
            make.openDoor();
            System.out.print(
    "第二步:");
            make.putInto();
            System.out.print(
    "第三步:");
            make.closeDoor();
        }


        
    public void getDrawerSteps()
        
    {
            make 
    = new MakeDrawerMethod(obj);
            System.out.print(
    "第一步:");
            make.openDoor();
            System.out.print(
    "第二步:");
            make.putInto();
            System.out.print(
    "第三步:");
            make.closeDoor();
        }

    }

     

    客戶代碼

    /*
    *@author 我為J狂 建立日期 2007-4-19
    *
    */

    package net.blogjava.lzqdiy;

    public class Client
    {

        
    /**
         * 
    @param args
         
    */

        
    public static void main(String[] args)
        
    {
            
    // TODO Auto-generated method stub
            Process process=new Process("大象");//關(guān)于如何裝大象的提問
            System.out.println("要把大象裝入冰箱,一共分幾步?");
            process.getFridgeSteps();
            System.out.println(
    "要把大象裝入抽屜,一共分幾步?");
            process.getDrawerSteps();
        }

    }

    輸出結(jié)果
    要把大象裝入冰箱,一共分幾步?
    第一步:把冰箱門打開!
    第二步:把大象放進(jìn)去!
    第三步:把冰箱門關(guān)上!
    要把大象裝入抽屜,一共分幾步?
    第一步:把抽屜門打開!
    第二步:把大象放進(jìn)去!
    第三步:把抽屜門關(guān)上!

    posted on 2007-04-19 21:29 我為J狂 閱讀(1612) 評(píng)論(3)  編輯  收藏 所屬分類: 設(shè)計(jì)模式

    評(píng)論

    # re: 從趙本山的小品聯(lián)想到的Java設(shè)計(jì)模式 2007-04-20 13:17 交口稱贊

    汗  回復(fù)  更多評(píng)論   

    # re: 從趙本山的小品聯(lián)想到的Java設(shè)計(jì)模式 2007-06-09 21:55 itkui

    兄臺(tái)想東西果然不一般呀!  回復(fù)  更多評(píng)論   

    # re: 從趙本山的小品聯(lián)想到的Java設(shè)計(jì)模式 2007-06-10 08:41 我為J狂

    @itkui
    喜歡趙本山的小品,還喜歡編程,于是創(chuàng)作出了上面的作品,呵呵。  回復(fù)  更多評(píng)論   

    <2007年4月>
    25262728293031
    1234567
    891011121314
    15161718192021
    22232425262728
    293012345

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(11)

    隨筆分類(48)

    文章分類(29)

    常去逛逛

    搜索

    積分與排名

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 亚洲网红精品大秀在线观看 | 花蝴蝶免费视频在线观看高清版| 国产亚洲精品久久久久秋霞 | 亚洲AV无码一区二区三区电影| 亚洲成?v人片天堂网无码| 97公开免费视频| 极品色天使在线婷婷天堂亚洲| 亚洲AV无码日韩AV无码导航| 日韩精品无码人妻免费视频| 成人免费一区二区三区| 亚洲专区一路线二| 国产偷国产偷亚洲高清日韩| 毛片a级毛片免费观看免下载| a级毛片免费网站| jlzzjlzz亚洲jzjzjz| 免费乱理伦在线播放| 久久免费线看线看| 国产午夜亚洲精品不卡免下载 | 亚洲一区二区三区在线视频| 欧美三级在线电影免费| 久久国产精品免费网站| 午夜免费国产体验区免费的| 亚洲免费闲人蜜桃| 亚洲福利在线视频| 中文字幕亚洲专区| 久久青青草原亚洲AV无码麻豆| 久久亚洲私人国产精品vA| 亚洲国产精品高清久久久| 亚洲精品无码久久毛片| 四虎免费永久在线播放| 天天天欲色欲色WWW免费| 久久99九九国产免费看小说| 免费人成在线观看网站| 久久A级毛片免费观看| 成年男女免费视频网站| 亚洲AⅤ永久无码精品AA| 国产精品成人免费综合| 午夜一区二区免费视频| 成人影片麻豆国产影片免费观看| 国产一级一片免费播放i| 亚洲国产精品无码久久久秋霞2 |