<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    細心!用心!耐心!

    吾非文人,乃市井一俗人也,讀百卷書,跨江河千里,故申城一游; 一兩滴辛酸,三四年學業,五六點粗墨,七八筆買賣,九十道人情。

    BlogJava 聯系 聚合 管理
      1 Posts :: 196 Stories :: 10 Comments :: 0 Trackbacks
    Simple Factory模式(又稱Static Factory模式),一個Simple Factory生產成品,而對客戶端隱藏產品產生的細節。實作時定義一個產品介面(interface),並透過特定靜態方法來建立成品。

    假設有一個音樂盒工廠,購買音樂盒的客人不用知道音樂盒是如何製作的,他只要知道如何播放音樂盒就可以了,以 UML 類別圖來表示以上的概念:
    SimpleFactory
    如上圖所示的,MusicBoxDemo代表了客戶的角色,它只依賴於IMusicBox介面,而不關心特定的實作,實際如何產生IMusicBox的實例由MusicBoxFactory完成,以一個簡單的程式來實現上面這個UML類別圖:
    • IMusicBox.java
    public interface IMusicBox {
    public void play();
    }

    • PianoBox.java
    public class PianoBox implements IMusicBox {
    public void play() {
    System.out.println("撥放鋼琴音樂:)");
    }
    }

    • ViolinBox.java
    public class ViolinBox implements IMusicBox {
    public void play() {
    System.out.println("撥放小提琴音樂^_^");
    }
    }

    • MusicBoxFactory.java
    public class MusicBoxFactory {
    public static IMusicBox createMusicBox(String name)
    throws InstantiationException,
    IllegalAccessException,
    ClassNotFoundException {
    // 這邊使用的是Java的Reflection機制來產生實例
    // 不過客戶端不用管啦
    // 以後就算改變了這邊的程式,客戶端程式是不用更改的
    return (IMusicBox) Class.forName(name).newInstance();
    }
    }

    • MusicBoxDemo.java
    public class MusicBoxDemo {
    public static void main(String[] args) throws Exception {
    playMusicBox(MusicBoxFactory.createMusicBox("PianoBox"));
    playMusicBox(MusicBoxFactory.createMusicBox("ViolinBox"));
    }

    public static void playMusicBox(IMusicBox musicBox) {
    musicBox.play();
    }
    }

    由於客戶端只依賴於IMusicBox介面,所以即使您日後改變了createMusicBox()中的實作方式,對客戶端是一點影響也沒有的。

    來看看Simple Factory的類別結構:
    SimpleFactory

    客戶只要面對Factory,客戶依賴於產品介面,產品的具體實作是可以與客戶隔開的,它們也是可以抽換的。

    posted on 2007-04-16 17:39 張金鵬 閱讀(223) 評論(0)  編輯  收藏 所屬分類: Creational 模式
    主站蜘蛛池模板: 一级女性全黄久久生活片免费| sihu国产精品永久免费| 亚洲欧洲免费视频| 亚洲免费视频在线观看| 免费无码又爽又刺激网站| 亚洲V无码一区二区三区四区观看 亚洲αv久久久噜噜噜噜噜 | 亚洲精品二三区伊人久久| 成年人网站免费视频| 亚洲一区二区免费视频| 免费一本色道久久一区| 2022年亚洲午夜一区二区福利| 免费人成视频在线观看网站| 67pao强力打造67194在线午夜亚洲| 最近最新高清免费中文字幕| 亚洲精品午夜在线观看| 成年男女免费视频网站| 美女裸免费观看网站| 亚洲综合AV在线在线播放| 免费一级毛片无毒不卡| 亚洲国产成人久久综合一区| 麻豆国产入口在线观看免费| 免费VA在线观看无码| 久久精品国产精品亚洲蜜月| 97碰公开在线观看免费视频| 日韩国产精品亚洲а∨天堂免| 亚洲一区二区三区免费| 免费看又黄又无码的网站| 亚洲午夜精品久久久久久app| 亚洲成A人片77777国产| 七色永久性tv网站免费看| 最新亚洲精品国偷自产在线| 亚洲精品国产电影| 在线免费观看你懂的| 美景之屋4在线未删减免费| 久久亚洲国产成人亚| 成年美女黄网站18禁免费 | 亚洲精品免费观看| 亚洲成a人片在线观看天堂无码 | 无码免费午夜福利片在线| 特级毛片aaaa免费观看| 亚洲成a人片毛片在线|