<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)論排行榜

    主站蜘蛛池模板: 亚洲日韩aⅴ在线视频| 2015日韩永久免费视频播放 | 色播在线永久免费视频| 57PAO成人国产永久免费视频| 91精品全国免费观看含羞草| 99热精品在线免费观看| 性色午夜视频免费男人的天堂 | 国产亚洲精品美女久久久久| 亚洲欧洲av综合色无码| 亚洲精品理论电影在线观看| 含羞草国产亚洲精品岁国产精品| 亚洲av纯肉无码精品动漫| 亚洲aⅴ无码专区在线观看春色 | 久久精品国产精品亚洲艾| 亚洲日本va午夜中文字幕一区| 亚洲一区二区三区首页| 亚洲成综合人影院在院播放| 亚洲综合伊人制服丝袜美腿| 亚洲人成色77777在线观看| 99亚洲男女激情在线观看| 污污的视频在线免费观看| 亚洲精品无码久久不卡| 亚洲女同成人AⅤ人片在线观看| 亚洲人成人网站色www | 永久在线毛片免费观看| 男人的天堂亚洲一区二区三区 | 国产成人+综合亚洲+天堂| caoporn国产精品免费| 国产精品免费高清在线观看| 91免费在线播放| 免费观看毛片视频| 久久久久亚洲av毛片大| 中文字幕亚洲精品| 亚洲色偷偷色噜噜狠狠99| 一级白嫩美女毛片免费| 日韩人妻无码精品久久免费一 | 久久国产乱子伦免费精品| 大地资源二在线观看免费高清| 国产精品久久久久影院免费| 国产亚洲美女精品久久久2020| 亚洲视频手机在线|