隨筆-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();
            }

          }


          比如說(shuō)我需要一個(gè)顯卡驅(qū)動(dòng)和打印機(jī)驅(qū)動(dòng),高檔機(jī)和低檔機(jī)驅(qū)動(dòng)都不一樣,但我不想用很多switch來(lái)選擇,這樣很麻煩,而且擴(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ì)象,而且不用考慮有沒(méi)有提供相應(yīng)方法,在擴(kuò)展和修改的時(shí)候更加方便,因?yàn)槌橄蠛蛯?shí)現(xiàn)全部分開(kāi)了,這也是我們?cè)谄匠>幊坍?dāng)中需要注意的。


                                                                   

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

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

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


          網(wǎng)站導(dǎo)航:
           
          專注移動(dòng)開(kāi)發(fā)--Windows Mobile, Android, iPhone, J2ME, BlackBerry, Symbian, Windows Phone

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

          常用鏈接

          留言簿(43)

          隨筆分類(402)

          隨筆檔案(306)

          相冊(cè)

          我的好友們

          搜索

          •  

          積分與排名

          • 積分 - 812915
          • 排名 - 50

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 西藏| 筠连县| 都昌县| 金山区| 盐亭县| 新丰县| 轮台县| 大名县| 天门市| 玉树县| 屏东县| 嘉义市| 华池县| 文昌市| 南漳县| 建湖县| 格尔木市| 丰宁| 桂林市| 登封市| 庆阳市| 蕲春县| 沙河市| 光山县| 东源县| 江华| 嵊州市| 巧家县| 常熟市| 邛崃市| 天津市| 石台县| 德州市| 宣汉县| 新和县| 库车县| 安多县| 云安县| 湘潭市| 莱州市| 邳州市|