posts - 297,  comments - 1618,  trackbacks - 0

          ????模板方法(Template Method)模式 屬于對(duì)象的行為模式
          1. 定義
          ??? 定義一個(gè)操作中算法的骨架,將一些步驟執(zhí)行延遲到其子類(lèi)中。模板方法模式是基于繼承的代碼復(fù)用的基本技術(shù),該模式的結(jié)構(gòu)和用法也是面向?qū)ο笤O(shè)計(jì)的核心。
          2. 使用的原因
          ??? 當(dāng)一個(gè)算法的基本骨架已能確定,但算法的實(shí)現(xiàn)部分會(huì)根據(jù)具體情況有所變動(dòng),或?yàn)榱颂岣咚惴▽?shí)現(xiàn)的靈活性時(shí),可考慮采用模板方法(Template Method)模式。
          3. 適用的情況舉例
          ??? eg. 你計(jì)劃了向所喜歡的女孩子表白,你已經(jīng)想好了當(dāng)晚表白時(shí)要進(jìn)行的具體步驟,例如第一步打電話約該女生出來(lái),第二步與該女生去一家咖啡廳或附近的某公園表白,第三步.......,但還沒(méi)想好具體的某些步該怎么樣做時(shí),你可以先定義一個(gè)抽象的模板,然后請(qǐng)各好友或自己閉關(guān)想出一種或多種來(lái)實(shí)現(xiàn)之;
          4. 類(lèi)圖結(jié)構(gòu)及說(shuō)明
          ???? 1)類(lèi)圖結(jié)構(gòu)如下所示:


          ?????? 2)類(lèi)說(shuō)明
          ??????????? i) AbstractClass:抽象模板類(lèi),該類(lèi)定義了一個(gè)或多個(gè)抽象操作,以便讓子類(lèi)實(shí)現(xiàn);并且它給出了一個(gè)頂級(jí)邏輯的骨架,而邏輯的組成步驟在相應(yīng)的抽象步驟中,推遲到子類(lèi)實(shí)現(xiàn)。
          ?????????? ii)ConcreteClass:具體模板類(lèi),該類(lèi)實(shí)現(xiàn)父類(lèi)AbstractClass所定義的一個(gè)或多個(gè)抽象方法,它們是一個(gè)頂級(jí)邏輯的組成步驟;每一個(gè)抽象模板角色都可以有任意多個(gè)具體模板角色與之對(duì)應(yīng),而每一個(gè)具體模板角色都可以給出這些抽象方法的不同實(shí)現(xiàn)。

          5. 使用舉例
           
          1) 需求:Amigo的老媽大人打算找個(gè)女婿,特意為其未來(lái)女婿定義需闖的五關(guān),第一關(guān):基本條件,年齡要求:25-30;第二關(guān):考驗(yàn)其是否love她的女兒;第三關(guān):檢驗(yàn)其是否老實(shí)不花心;第四關(guān):考察其是否尊老愛(ài)幼;第五關(guān):觀察該人是否勤奮好學(xué)有能力。對(duì)于來(lái)“應(yīng)聘”的人(也許還有不少,貌似美美地說(shuō)),對(duì)這五關(guān)都會(huì)有不同的表現(xiàn)方式;
          ???? 2)分析:Amigo一瞄,嘿,這倒是個(gè)模板方法方式的典型好例哦,選女婿的算法骨架已出來(lái)了,就是這五關(guān)哈,各個(gè)“應(yīng)聘”者提供了第二到五關(guān)的具體實(shí)現(xiàn);
          ???? 3)代碼參考實(shí)現(xiàn):
          ????????? i)抽象考察模板類(lèi)

          public ? abstract ? class ?考察模板? {
          ????
          public ? void ?選女婿()? {
          ??????????? 第一關(guān)();
          ??????????? 第二關(guān)();
          ??????????? 第三關(guān)();
          ??????????? 第四關(guān)();
          ?????????????? 第五關(guān)();
          ????}

          ?
          ????????????
          ???????? public final void 第一關(guān)() {
          ???????????????//年齡限制:25-30
          ?????????}

          ????
          public ? abstract ? void ?第二關(guān)();
          ??
          ????
          public ? abstract ? void ?第三關(guān)();

          ????
          public ? abstract ? void ?第四關(guān)();
          ??
          ????
          public ? abstract ? void ?第五關(guān)();

          }
          ??????? ii)考察模板具體實(shí)現(xiàn)類(lèi),A君過(guò)來(lái)應(yīng)聘,經(jīng)過(guò)一段時(shí)間的考察,Amigo's mother總結(jié)了其實(shí)現(xiàn),具體如下:
          ?????
          public?class?應(yīng)聘人1的實(shí)現(xiàn)?extends?考察模板?{
          ????
          public?void?第二關(guān)()?{
          ??????????
          //跟Amigo's?mother's?daughter出去的時(shí)候老看路邊美女,汗
          ??????? }

          ??
          ????
          public?void?第三關(guān)()?{
          ????????????? ?
          //手機(jī)短信響不停,全是"親愛(ài)的"
          ??????? }


          ????
          public?void?第四關(guān)()?{
          ???????????? ?
          //坐公交車(chē)時(shí)不給老人小孩讓位子,現(xiàn)在的小伙子啊
          ?????? }

          ??
          ????
          public?void?第五關(guān)()?{
          ?????????????
          //一有空就在家里玩游戲,上班猛聊QQ
          ?????? ?}

          }
          ??????? 真是出師不利啊,一來(lái)就是個(gè)四不行.....
          ??????? 路漫漫,繼續(xù)等待應(yīng)聘人吧。
          ??????? 在此也祝愿單身的朋友們?cè)缛照业饺缫獾牧硪话耄灰覔屩^(guò)光棍節(jié)!
          posted on 2007-03-20 22:38 阿蜜果 閱讀(2562) 評(píng)論(8)  編輯  收藏 所屬分類(lèi): Design Pattern


          FeedBack:
          # re: 設(shè)計(jì)模式學(xué)習(xí)筆記--模板方法(Template Method)模式
          2007-03-20 23:05 | 阿蜜果
          剛修正了個(gè)bug,呵呵  回復(fù)  更多評(píng)論
            
          # re: 設(shè)計(jì)模式學(xué)習(xí)筆記--模板方法(Template Method)模式
          2007-03-20 23:09 | ant
          有才情的女子,^_^。  回復(fù)  更多評(píng)論
            
          # re: 設(shè)計(jì)模式學(xué)習(xí)筆記--模板方法(Template Method)模式
          2007-03-21 08:58 | Tortoise
          講解的很到位,每次的例子也都是那么的經(jīng)典,不頂?shù)娜耍穷^腦有問(wèn)題
          要么就不是這個(gè)行業(yè)的。  回復(fù)  更多評(píng)論
            
          # re: 設(shè)計(jì)模式學(xué)習(xí)筆記--模板方法(Template Method)模式
          2007-03-21 10:25 | 壞男孩
          寫(xiě)的很生動(dòng),證明已經(jīng)理解了其本質(zhì)  回復(fù)  更多評(píng)論
            
          # re: 設(shè)計(jì)模式學(xué)習(xí)筆記--模板方法(Template Method)模式 [未登錄](méi)
          2007-03-21 10:35 | 阿蜜果
          to all
          呵呵,謝謝各位的關(guān)注,繼續(xù)努力中!  回復(fù)  更多評(píng)論
            
          # re: 設(shè)計(jì)模式學(xué)習(xí)筆記--模板方法(Template Method)模式
          2007-03-21 12:28 | cresposhi
          我可不想做頭腦有問(wèn)題的人,so UP ^_^  回復(fù)  更多評(píng)論
            
          # re: 設(shè)計(jì)模式學(xué)習(xí)筆記--模板方法(Template Method)模式
          2007-03-21 16:03 | 鉛筆刀
          不錯(cuò)!不錯(cuò).
          欣賞了.  回復(fù)  更多評(píng)論
            
          # re: 設(shè)計(jì)模式學(xué)習(xí)筆記--模板方法(Template Method)模式
          2008-01-08 12:35 | hbyufan@hotmail.com
          2007-03-20 23:09 | ant

          有才情的女子,^_^。 回復(fù) 更多評(píng)論
            回復(fù)  更多評(píng)論
            
          <2007年3月>
          25262728123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

                生活將我們磨圓,是為了讓我們滾得更遠(yuǎn)——“圓”來(lái)如此。
                我的作品:
                玩轉(zhuǎn)Axure RP  (2015年12月出版)
                

                Power Designer系統(tǒng)分析與建模實(shí)戰(zhàn)  (2015年7月出版)
                
               Struts2+Hibernate3+Spring2   (2010年5月出版)
               

          留言簿(263)

          隨筆分類(lèi)

          隨筆檔案

          文章分類(lèi)

          相冊(cè)

          關(guān)注blog

          積分與排名

          • 積分 - 2296322
          • 排名 - 3

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 正安县| 广西| 家居| 本溪市| 宁明县| 绿春县| 静海县| 七台河市| 观塘区| 枝江市| 西华县| 桃园县| 凤庆县| 仁怀市| 大理市| 翁源县| 甘洛县| 望都县| 新和县| 都匀市| 瑞金市| 宁夏| 尚义县| 麻栗坡县| 琼海市| 敖汉旗| 普定县| 昌吉市| 嘉善县| 旺苍县| 舞阳县| 浦江县| 格尔木市| 曲阜市| 拉萨市| 皋兰县| 日土县| 浪卡子县| 乌苏市| 文水县| 游戏|