<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狂 閱讀(1618) 評(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毛一级a看免费视频| 国产精品99精品久久免费| 日本高清高色视频免费| 黄瓜视频影院在线观看免费| www国产亚洲精品久久久| 久久精品国产亚洲av高清漫画| 国产亚洲欧美日韩亚洲中文色| 黄页免费在线观看 | 亚洲国产一区二区三区| 9久久免费国产精品特黄| 亚欧在线精品免费观看一区| 亚洲av无码天堂一区二区三区| 亚洲专区在线视频| 免费无遮挡无遮羞在线看| 亚洲无砖砖区免费| 亚洲综合精品网站| 亚洲一本一道一区二区三区| a毛片免费全部在线播放**| 成人毛片18女人毛片免费视频未| 国产亚洲精品无码成人| 国产精品无码亚洲精品2021| 88xx成人永久免费观看| 亚洲欧洲国产成人综合在线观看| 亚洲永久在线观看| 午夜影院免费观看| 久久精品国产亚洲7777| 亚洲成a人无码亚洲成av无码 | 色www永久免费视频| 亚洲日本一区二区| 国产精品青草视频免费播放| 在线观看免费成人| 亚洲男女一区二区三区| 久久久久亚洲AV无码专区桃色| 亚洲一卡2卡三卡4卡无卡下载 | 国产av无码专区亚洲av果冻传媒 | 一级做a爰黑人又硬又粗免费看51社区国产精品视 | 精品国产免费人成网站| 国产精品二区三区免费播放心 | 精品亚洲成AV人在线观看| 一个人免费播放在线视频看片| 免费看大黄高清网站视频在线|