隨筆 - 117  文章 - 72  trackbacks - 0

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

          常用鏈接

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

          訂閱

          訂閱

          留言簿(7)

          隨筆分類(130)

          隨筆檔案(123)

          搜索

          •  

          積分與排名

          • 積分 - 156401
          • 排名 - 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 天堂露珠 閱讀(1122) 評論(0)  編輯  收藏 所屬分類: Pattern
          主站蜘蛛池模板: 隆化县| 湄潭县| 德格县| 友谊县| 青海省| 萝北县| 湘潭县| 台南市| 汽车| 辽源市| 桦川县| 沂水县| 肥城市| 余庆县| 蕉岭县| 吉安县| 龙门县| 万年县| 左权县| 青铜峡市| 桃园市| 文山县| 醴陵市| 托克托县| 靖远县| 田林县| 四子王旗| 万州区| 平遥县| 应城市| 哈巴河县| 铜陵市| 吴川市| 贵南县| 泰州市| 全椒县| 兴山县| 南岸区| 丹巴县| 宾川县| 蒲江县|