大漠駝鈴

          置身浩瀚的沙漠,方向最為重要,希望此blog能向大漠駝鈴一樣,給我方向和指引。
          Java,Php,Shell,Python,服務器運維,大數據,SEO, 網站開發、運維,云服務技術支持,IM服務供應商, FreeSwitch搭建,技術支持等. 技術討論QQ群:428622099
          隨筆 - 238, 文章 - 3, 評論 - 117, 引用 - 0
          數據加載中……

          JAVA設計模式之-簡單工廠模式(Simplae Factory)

          Factory method(工廠方法)是實例化對象的一種方法的名稱。就象工廠一樣,Factory method的任務是創建--或制造--對象。
          下面對工廠模式進行簡單的講解:
          從音樂盒開始講起,音樂盒工廠(MusicBoxFactory)生產音樂盒(PianoBox和ViolinBox),當然還可以是其它的音樂盒,這些具體的音樂盒展現給客戶(MusicBoxDemo)只是一個界面(IMusicBox),客戶不需要知道音樂盒的具體實現功能,只要能play()就OK。
          如下圖所示:客戶(MusicBoxDemo)依賴音樂盒的界面,而不必知道音樂盒是如何通過音樂盒工廠(MusicBoxFactory)生產的。
          從下面的圖我們進入簡單的代碼演示階段:

          IMusicBox.java
          public interface IMusicBox{
          public void play();

          }
          PianoBox.java
          public class PinoBox 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{
          /***
          使用java反射機制生成實例
          客戶端只需調用即可
          方便維護和以后程序的升級擴展
          */
          public static IMusicBox createMusicBox(String name)throws InstantiationException,IllegalAccessException,ClassNotFoundException{

          IMusicBox musicbox
          =(IMusicBox)Class.forName(name).newInstance();

          //在這里還可以進行一些box的內部成員變量處理


          return musicbox;

          }


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


          }

          public static void PlayMusicBox(IMusicBox imusicbox){

          imusicbox.play();

          }



          }

          這樣客戶只需要知道音樂的界面即可,不需要知道如何生產的音樂盒。即使以后修改了Factory的生產模式,用戶這里也是毫不影響。


          posted on 2008-12-14 22:57 草原上的駱駝 閱讀(411) 評論(0)  編輯  收藏 所屬分類: 設計模式-DP


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 报价| 永胜县| 扶绥县| 内乡县| 称多县| 陆良县| 方城县| 黔东| 潜山县| 乐亭县| 山西省| 大余县| 呼玛县| 增城市| 嵩明县| 巴楚县| 泰州市| 民权县| 兴山县| 邓州市| 新干县| 姜堰市| 大化| 大兴区| 思茅市| 长岛县| 顺平县| 化隆| 永登县| 上思县| 新河县| 红安县| 探索| 绥芬河市| 花莲市| 宜春市| 双桥区| 镇远县| 新绛县| 高邮市| 滨海县|