隨筆-348  評論-598  文章-0  trackbacks-0
          provide an interface for creating families of related or dependent objects without specifying their concrete classes
                                                             --Gamma, E., Helm, R., Johnson, R., Vlissides, J. Design Patterns: Elements of Reusable Object-Oriented Software, Boston: Addison-Wesley, 1995, p.87        

          講白了,就是面向抽象接口編程,每一組對象都實現同一個接口          
          abstract class ResFactory {
             
          abstract public DisplayDriver getDispDrvr();
             
          abstract public PrintDriver getPrtDrvr();
          }


          class LowResFact extends ResFactory {
             
          public DisplayDriver getDispDrvr() {
                
          return new LRDD();
             }

             
          public PrintDriver getPrtDrvr() {
                
          return new LRPD();
             }

          }


          class HighResFact extends ResFactory {
             
          public DisplayDriver getDispDrvr() {
                
          return new HRDD();
             }

             
          public PrintDriver getPrtDrvr() {
                
          return new HRPD();
            }

          }


          比如說我需要一個顯卡驅動和打印機驅動,高檔機和低檔機驅動都不一樣,但我不想用很多switch來選擇,這樣很麻煩,而且擴展更麻煩。那我就定義一個抽象類,將我需要調用的資源全部放在里面,初始化類的時候我們可以先聲明一個
          ResFactory factory;
          當我們需要使用高檔機的時候就
          factory=new HighResFact();
          使用低檔機的時候就
          factory=new LowResFact();

          這樣,就可以很方便的調用自己想調用的對象,而且不用考慮有沒有提供相應方法,在擴展和修改的時候更加方便,因為抽象和實現全部分開了,這也是我們在平常編程當中需要注意的。


                                                                   

          ---------------------------------------------------------
          專注移動開發

          Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian
          posted on 2007-04-26 21:11 TiGERTiAN 閱讀(1166) 評論(0)  編輯  收藏 所屬分類: Design Patterns

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


          網站導航:
           
          主站蜘蛛池模板: 中阳县| 嵊州市| 保靖县| 屏东县| 九龙城区| 江永县| 云梦县| 盐津县| 阿克| 荆州市| 黄骅市| 大邑县| 饶阳县| 寿光市| 西乌| 三门峡市| 泗水县| 毕节市| 万源市| 陕西省| 华宁县| 涿鹿县| 永济市| 黑山县| 新津县| 临沧市| 纳雍县| 临沂市| 融水| 舟曲县| 隆回县| 汕头市| 台北县| 富宁县| 顺昌县| 云林县| 文登市| 金乡县| 思茅市| 名山县| 新竹市|