隨筆-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 閱讀(1165) 評論(0)  編輯  收藏 所屬分類: Design Patterns

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


          網站導航:
           
          專注移動開發--Windows Mobile, Android, iPhone, J2ME, BlackBerry, Symbian, Windows Phone

          慢慢混,慢慢學
          <2007年4月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(43)

          隨筆分類(402)

          隨筆檔案(306)

          相冊

          我的好友們

          搜索

          •  

          積分與排名

          • 積分 - 813921
          • 排名 - 50

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 京山县| 隆尧县| 阳信县| 大关县| 蓬溪县| 齐齐哈尔市| 斗六市| 綦江县| 科尔| 朝阳县| 新邵县| 岐山县| 苗栗县| 谢通门县| 平遥县| 常熟市| 垣曲县| 克东县| 五寨县| 宣武区| 玛纳斯县| 遵义县| 广德县| 蛟河市| 尼勒克县| 鹿邑县| 体育| 平邑县| 遂昌县| 长顺县| 金湖县| 江永县| 博客| 建瓯市| 合山市| 景洪市| 吉木乃县| 海淀区| 高邑县| 榆社县| 南和县|