<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ì)模式

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

    抽象建造者角色

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

    package net.blogjava.lzqdiy;

    public interface Make
    {
        
    void openDoor();//產(chǎn)生打開(kāi)門的方法
        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)打開(kāi)門的方法
        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("把冰箱門打開(kāi)!");
        }


        
    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("把抽屜門打開(kāi)!");
        }


        
    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)于如何裝大象的提問(wèn)
            System.out.println("要把大象裝入冰箱,一共分幾步?");
            process.getFridgeSteps();
            System.out.println(
    "要把大象裝入抽屜,一共分幾步?");
            process.getDrawerSteps();
        }

    }

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

    posted on 2007-04-19 21:29 我為J狂 閱讀(1611) 評(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)論排行榜

    主站蜘蛛池模板: 免费精品国自产拍在线播放 | 久久久久久影院久久久久免费精品国产小说 | 美女视频黄a视频全免费网站一区| 男人天堂2018亚洲男人天堂 | 色在线亚洲视频www| 青青久久精品国产免费看| 黄色大片免费网站| 中国精品一级毛片免费播放| 香蕉免费看一区二区三区| 国产精品99久久免费观看 | 亚洲欧洲免费视频| 免费高清av一区二区三区| 暖暖免费高清日本一区二区三区| 亚洲国产精品自在拍在线播放 | 国产在线国偷精品产拍免费| 国产乱子伦精品免费女| 久久久久久亚洲av成人无码国产| 国产亚洲精品bv在线观看| 中文字幕不卡免费视频| 亚洲免费观看在线视频| 又爽又黄无遮挡高清免费视频| 亚洲精品国产肉丝袜久久| 在线视频网址免费播放| 亚洲AV成人精品日韩一区18p| 亚洲一区二区三区无码国产| 在线观看亚洲精品专区| aⅴ在线免费观看| 亚洲中文字幕在线第六区| 亚洲av综合av一区二区三区| 免费A级毛片无码A∨ | 国产禁女女网站免费看| 亚洲国产成人精品久久| 久久午夜夜伦鲁鲁片无码免费| 又大又硬又爽免费视频| 亚洲欧洲无码一区二区三区| 一区二区三区在线免费看| 亚洲国产精品VA在线观看麻豆| 亚洲中文精品久久久久久不卡| 无码区日韩特区永久免费系列 | 国产成人3p视频免费观看| 亚洲欧洲专线一区|