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

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

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

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

    春晚的小品中,宋丹丹問趙本山:把大象裝冰箱,總共分幾步?三步。至于哪三步,想必大家都會脫口而出。下面我就使用Java設(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) 評論(3)  編輯  收藏 所屬分類: 設(shè)計模式

    評論

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

    汗  回復(fù)  更多評論   

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

    兄臺想東西果然不一般呀!  回復(fù)  更多評論   

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

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

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

    導(dǎo)航

    統(tǒng)計

    常用鏈接

    留言簿(11)

    隨筆分類(48)

    文章分類(29)

    常去逛逛

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲日韩涩涩成人午夜私人影院| 成在线人直播免费视频| 精品国产_亚洲人成在线高清| 成人黄18免费视频| **毛片免费观看久久精品| www成人免费观看网站| 亚洲精品蜜夜内射| 亚洲欧洲国产综合| 亚洲AV日韩AV永久无码下载| 国产亚洲情侣一区二区无| 免费人妻av无码专区| 手机在线毛片免费播放| 国产大片免费网站不卡美女| 久久精品一区二区免费看| 国产在线观a免费观看| 一级做a爰黑人又硬又粗免费看51社区国产精品视 | 1000部拍拍拍18勿入免费视频下载 | 久久精品国产大片免费观看| 91视频免费观看高清观看完整| 免费看一级高潮毛片| 精品国产亚洲第一区二区三区| 亚洲人成未满十八禁网站| 亚洲三级在线视频| 亚洲区精品久久一区二区三区| 久久亚洲精品无码aⅴ大香| 亚洲国产综合专区在线电影| 亚洲成av人影院| 亚洲嫩模在线观看| 精品亚洲成a人片在线观看少妇| 亚洲av无码国产精品夜色午夜| 亚洲精品无码AV人在线播放| 亚洲午夜久久久影院伊人| 国产亚洲精品a在线观看app| 亚洲国产精品一区第二页 | 国产精品免费αv视频| 中文字幕乱理片免费完整的| 羞羞视频免费网站在线看| 99视频在线观看免费| 日本免费久久久久久久网站| 99久久精品免费视频| 免费AA片少妇人AA片直播|