隨筆 - 117  文章 - 72  trackbacks - 0

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

          常用鏈接

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

          訂閱

          訂閱

          留言簿(7)

          隨筆分類(130)

          隨筆檔案(123)

          搜索

          •  

          積分與排名

          • 積分 - 155904
          • 排名 - 389

          最新評論

          [關鍵字]: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
          主站蜘蛛池模板: 阳原县| 富阳市| 横山县| 大兴区| 如东县| 仪征市| 广州市| 克拉玛依市| 磐安县| 孝感市| 淳安县| 探索| 大邑县| 南召县| 朔州市| 珠海市| 蛟河市| 东源县| 巴林右旗| 彝良县| 平武县| 河东区| 巴彦县| 马关县| 隆尧县| 屯留县| 和顺县| 盐山县| 洞头县| 舒兰市| 崇明县| 浙江省| 阳高县| 拉孜县| 九龙县| 芜湖市| 汉沽区| 团风县| 宁都县| SHOW| 红原县|