大漠駝鈴

          置身浩瀚的沙漠,方向最為重要,希望此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 草原上的駱駝 閱讀(407) 評論(0)  編輯  收藏 所屬分類: 設計模式-DP


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


          網站導航:
           
          主站蜘蛛池模板: 军事| 巩留县| 虎林市| 灵宝市| 北宁市| 子长县| 嘉定区| 湘潭县| 德保县| 柳州市| 额济纳旗| 利辛县| 修水县| 祁门县| 淮北市| 高安市| 蒙阴县| 凌海市| 苏尼特右旗| 丹东市| 安康市| 黔江区| 铁力市| 精河县| 阳东县| 南陵县| 都兰县| 宁明县| 淮安市| 百色市| 延边| 武城县| 长武县| 扎鲁特旗| 剑河县| 阿克苏市| 平武县| 拉孜县| 西畴县| 昭通市| 金平|