<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 模式
    主站蜘蛛池模板: 欧洲乱码伦视频免费国产 | 久久水蜜桃亚洲av无码精品麻豆 | 亚洲综合成人婷婷五月网址| 亚洲sss综合天堂久久久| 一区二区三区福利视频免费观看| 久久久久国产精品免费免费搜索 | 免费人成网站在线观看不卡| 无码av免费毛片一区二区| 全免费a级毛片免费看无码| 国产a v无码专区亚洲av| 亚洲黄色免费电影| 久草免费福利资源站| 亚洲精品在线免费观看视频| 一级毛片免费不卡| 在线亚洲97se亚洲综合在线| 大地资源在线资源免费观看| 免费看片免费播放| 曰批全过程免费视频观看免费软件| 亚洲AV无码不卡在线观看下载| aaa毛片视频免费观看| 亚洲图片一区二区| 成全视频免费高清| 国产亚洲漂亮白嫩美女在线| 中文字幕第13亚洲另类| 亚洲人成网站免费播放| 七色永久性tv网站免费看| 亚洲精品乱码久久久久久下载 | 亚洲一久久久久久久久| 91视频免费网址| 91丁香亚洲综合社区| 免费人成在线观看网站视频| 亚洲人妖女同在线播放| 日本高清免费不卡视频| 中文字幕免费在线视频| 亚洲一区中文字幕在线观看| 亚洲成AⅤ人影院在线观看| 一级毛片在线免费观看| 精品在线视频免费| 91情国产l精品国产亚洲区| 最好免费观看韩国+日本| 一区二区三区无码视频免费福利|