隨筆 - 117  文章 - 72  trackbacks - 0

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

          常用鏈接

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

          訂閱

          訂閱

          留言簿(7)

          隨筆分類(130)

          隨筆檔案(123)

          搜索

          •  

          積分與排名

          • 積分 - 155797
          • 排名 - 390

          最新評論

          [關鍵字]: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 天堂露珠 閱讀(1118) 評論(0)  編輯  收藏 所屬分類: Pattern
          主站蜘蛛池模板: 西丰县| 辽源市| 石城县| 文安县| 榆林市| 石嘴山市| 岢岚县| 乌兰浩特市| 山丹县| 堆龙德庆县| 清苑县| 扎囊县| 冷水江市| 罗源县| 阿克| 曲阜市| 沈阳市| 安仁县| 昆山市| 临洮县| 镇江市| 罗山县| 碌曲县| 鸡泽县| 阳信县| 韩城市| 吉林省| 望奎县| 芦山县| 云浮市| 白玉县| 子洲县| 西吉县| 天津市| 山东| 泸西县| 昭平县| 靖宇县| 阿勒泰市| 汕尾市| 镶黄旗|