隨筆-348  評(píng)論-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        

          講白了,就是面向抽象接口編程,每一組對(duì)象都實(shí)現(xiàn)同一個(gè)接口          
          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();
            }

          }


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

          這樣,就可以很方便的調(diào)用自己想調(diào)用的對(duì)象,而且不用考慮有沒有提供相應(yīng)方法,在擴(kuò)展和修改的時(shí)候更加方便,因?yàn)槌橄蠛蛯?shí)現(xiàn)全部分開了,這也是我們?cè)谄匠>幊坍?dāng)中需要注意的。


                                                                   

          ---------------------------------------------------------
          專注移動(dòng)開發(fā)

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

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 航空| 岳普湖县| 喀喇沁旗| 望谟县| 梁平县| 镶黄旗| 丽水市| 年辖:市辖区| 万山特区| 库车县| 郯城县| 施秉县| 宁明县| 神农架林区| 福贡县| 宝兴县| 许昌县| 海阳市| 福清市| 广灵县| 贵州省| 怀远县| 民乐县| 固始县| 瓦房店市| 云林县| 株洲县| 库尔勒市| 林甸县| 炉霍县| 华池县| 扬州市| 涟源市| 子长县| 栾城县| 柳河县| 茌平县| 吴川市| 南城县| 清流县| 柳林县|