隨筆 - 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
          主站蜘蛛池模板: 托克托县| 丰顺县| 桑日县| 宜城市| 青海省| 石家庄市| 中江县| 新野县| 樟树市| 台东市| 沾化县| 汕尾市| 南阳市| 江达县| 霸州市| 安徽省| 文成县| 乐平市| 沁阳市| 睢宁县| 淮南市| 阿克苏市| 阿勒泰市| 尼木县| 岑溪市| 罗定市| 潜江市| 抚远县| 叙永县| 凌源市| 石林| 高唐县| 博客| 桃源县| 江阴市| 南宫市| 从化市| 城市| 巴青县| 毕节市| 托克逊县|