隨筆 - 117  文章 - 72  trackbacks - 0

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

          常用鏈接

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

          訂閱

          訂閱

          留言簿(7)

          隨筆分類(130)

          隨筆檔案(123)

          搜索

          •  

          積分與排名

          • 積分 - 156579
          • 排名 - 390

          最新評論

          [關鍵字]:java,design pattern,設計模式,《Java與模式》,Abstract Factory,抽象工廠模式
          [環境]:StarUML5.0 + JDK6
          [作者]:Winty (wintys@gmail.com)
          [正文]:

          /**
           * 抽象工廠:Button and Text of Windows and Unix
           * @version 2009-4-11
           * @author Winty(wintys@gmail.com)
           */
          package pattern.abstractfactory;
          public class AbstractFactory{
              public static void main(String[] args){
                  Factory unix , win;
                  unix = new UnixFactory();
                  win = new WindowsFactory();

                  //創建Unix產品
                  Button btn1 = unix.createButton();
                  Text text1 = unix.createText();

                  System.out.println("");

                  //創建Windows產品
                  Button btn2 = win.createButton();
                  Text text2 = win.createText();
              }
          }

          //產品等級1
          abstract class Button{
              protected String type;

              public Button(){
                   type = "Button";
              }
          }

          class UnixButton extends Button{
              public UnixButton(){
                  System.out.println("Unix" + type);
              }
          }

          class WindowsButton extends Button{
              public WindowsButton(){
                  System.out.println("Windows" + type);
              }
          }

          //產品等級2
          abstract class Text{
              protected String type;
             
              public Text(){
                  type = "Text";
              }
          }

          class UnixText extends Text{
              public UnixText(){
                  System.out.println("Unix"+type);
              }
          }

          class WindowsText extends Text{
              public WindowsText(){
                  System.out.println("Windows"+type);
              }
          }

          //抽象工廠
          abstract class Factory{
              public abstract Button createButton();
              public abstract Text createText();
          }

          class UnixFactory extends Factory{
              public Button createButton(){
                  return new UnixButton();
              }

              public Text createText(){
                  return new UnixText();
              }
          }

          class WindowsFactory extends Factory{
              public Button createButton(){
                  return new WindowsButton();
              }

              public Text createText(){
                  return new WindowsText();
              }
          }
          posted on 2009-04-14 19:25 天堂露珠 閱讀(1368) 評論(0)  編輯  收藏 所屬分類: Pattern
          主站蜘蛛池模板: 宜兰市| 姚安县| 五莲县| 札达县| 揭东县| 黄大仙区| 岚皋县| 湘阴县| 崇信县| 杭锦后旗| 郑州市| 内江市| 都江堰市| 吉木乃县| 固安县| 伊宁市| 行唐县| 洛川县| 米泉市| 麻城市| 壶关县| 静宁县| 安徽省| 延边| 荥经县| 平远县| 方正县| 白水县| 蒙阴县| 共和县| 宜宾市| 油尖旺区| 施秉县| 武乡县| 泰州市| 武宣县| 迁安市| 阿合奇县| 海门市| 南昌县| 大石桥市|