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

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

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

    隨筆 - 117  文章 - 72  trackbacks - 0

    聲明:原創作品(標有[原]字樣)轉載時請注明出處,謝謝。

    常用鏈接

    常用設置
    常用軟件
    常用命令
     

    訂閱

    訂閱

    留言簿(7)

    隨筆分類(130)

    隨筆檔案(123)

    搜索

    •  

    積分與排名

    • 積分 - 155638
    • 排名 - 391

    最新評論

    [關鍵字]:java,design pattern,設計模式,《Java與模式》,Factory
    [環境]:StarUML5.0 + JDK6
    [作者]:Winty (wintys@gmail.com)
    UML圖:

    代碼:
    /**
     *工廠模式測試類
     *@version 2009-4-3
     *@author Winty(wintys@gmail.com)
     */
    package pattern.factory;

    public class Factory{
        public static void main(String[] args){
            Fruit fruit;
            FruitGardener fruitGardener;

            fruitGardener = new AppleGardener();
            fruit = fruitGardener.factory();
            fruit.plant();
            fruit.harvest();

            fruitGardener = new StrawberryGardener();
            fruit = fruitGardener.factory();
            fruit.plant();
            fruit.harvest();

            fruitGardener = new GrapeGardener();
            fruit = fruitGardener.factory();
            fruit.plant();
            fruit.harvest();
        }
    }

    /**
     *抽象產品
     */
    abstract class Fruit{
        protected String name;

        public abstract void plant();
        public abstract void harvest();
    }

    /**
     *具體產品(Apple)
     */
    class Apple extends Fruit{
        public Apple(){
            name = "Apple";
        }

        @Override
        public void plant(){
            System.out.println(name + " plant");
        }

        @Override
        public void harvest(){
            System.out.println(name + " harvest");
        }
    }

    /**
     *具體產品(草莓)
     */
    class Strawberry extends Fruit{
         
        public Strawberry(){
            name = "Strawberry";
        }
       
        @Override
        public void plant(){
            System.out.println(name + " plant");
        }

        @Override
        public void harvest(){
            System.out.println(name + " harvest");
        }
    }

    /**
     *具體產品(葡萄)
     */
    class Grape extends Fruit{
        public Grape(){
            name = "Grape";
        }

        @Override
        public void plant(){
            System.out.println(name + " plant");
        }

        @Override
        public void harvest(){
            System.out.println(name + " harvest");
        }
    }


    /**
     *抽象工廠類
     */
    abstract class FruitGardener{
        public abstract Fruit factory();
    }

    /**
     *具體Apple工廠
     */
    class AppleGardener extends FruitGardener{
        @Override
        public Fruit factory(){
            return new Apple();
        }
    }

    /**
     *具體草莓工廠
     */
    class StrawberryGardener extends FruitGardener{
        @Override
        public Fruit factory(){
            return new Strawberry();
        }
    }

    /**
     *具體葡萄工廠
     */
    class GrapeGardener extends FruitGardener{
        @Override
        public Fruit factory(){
            return new Grape();
        }
    }
    posted on 2009-04-14 12:32 天堂露珠 閱讀(1117) 評論(0)  編輯  收藏 所屬分類: Pattern
    主站蜘蛛池模板: 美女露隐私全部免费直播| 亚洲色大情网站www| 国产一区二区免费视频| 国产精品亚洲αv天堂无码| 好吊色永久免费视频大全| 伊人婷婷综合缴情亚洲五月| 成人无码区免费A∨直播| 亚洲性猛交XXXX| 久久国产免费观看精品| 亚洲狠狠久久综合一区77777| 日韩精品在线免费观看| 亚洲精品成人久久| 成人无码区免费视频观看| 在线观看免费亚洲| 久久久久亚洲精品天堂久久久久久| 久久性生大片免费观看性| 亚洲AV无码一区二区乱孑伦AS| 最近中文字幕高清免费中文字幕mv| 亚洲成人免费电影| 特级淫片国产免费高清视频| 羞羞漫画登录页面免费| 亚洲色自偷自拍另类小说| 精品一区二区三区无码免费视频| 亚洲成a人片在线观看精品| 免费日本黄色网址| 在线人成免费视频69国产| 亚洲另类春色国产精品| 免费无码又爽又高潮视频 | 特级aa**毛片免费观看| 久久久精品国产亚洲成人满18免费网站 | 亚洲a级成人片在线观看| 又粗又硬又黄又爽的免费视频| 中文字幕不卡高清免费| 亚洲一级毛片免费看| 亚洲M码 欧洲S码SSS222| 久久久久久一品道精品免费看 | 四虎精品免费永久免费视频| 无码专区—VA亚洲V天堂| 免费高清资源黄网站在线观看 | 免费看黄视频网站| 一级做a爰性色毛片免费|