<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                模板?生科的小朋友或許會這樣理解,DNA復制或轉錄時,用來產生互補鏈的核苷酸序列。在我們的日程生活中,我們也時常與模板打交道,比如有些師哥師姐畢業了,需要寫簡歷應聘,這個時候就有了簡歷模板;臨近畢業大四的孩子,需要準備論文,就有了論文模板,所以,模板的概念就是有一個規定的格式,然后每個人都可以根據自己的需求或情況去更新完善它,例如簡歷模板,從網上down下來的簡歷模板的格式都是相同的,要想拿到一份滿意的offer,我們首先要根據自己的情況填充不同的內容完成屬于自己的簡歷,拿到那夢寐以求的Offer。 在設計模式中,模板方法模式中模板和生活中模板概念非常類似。模板方法模式——在一個抽象類中定義一個操作中的算法骨架(對應于生活中的大家down的模板),而將一些步驟延遲到子類中去實現(對應于我們根據自己的情況向模板填充內容)。模板方法使得子類可以不改變一個算法的結構前提下,重新定義算法的某些特定步驟,模板方法模式把不變行為搬到超類中,從而去除了子類中的重復代碼。來看一下我們模板方法模式的結構圖: ? ? ? ? ?![](https://box.kancloud.cn/2015-12-30_568374380f3a1.jpg) 除了簡歷模板之外,我們再來舉一個生活中的故事,而我就是這個故事中傻傻的主角兒,這幾天飯卡里沒有錢了,人是鐵飯是鋼,一頓不吃餓得慌,雖然說減肥刻不容緩,可是真理說的好啊,不吃飽哪兒來的力氣減肥啊,周二下午四點來到工商銀行ATM機錢取錢,奇怪,為什么密碼不對呢?無奈,再來一次,就這樣連續三次,我的銀行卡光榮的被鎖住了,拔出銀行卡一看,我看見了什么,上面赫然寫著,郵政儲蓄,原來我把郵政儲蓄的卡當成了工行的卡,兩個卡的密碼不一樣,我在工行取錢,插到ATM機的是郵政的卡,按的密碼是郵政銀行卡的密碼,所以,才發生了剛才那不堪回首的一幕,沒有辦法,去前臺把卡給解鎖了,這樣才能有力氣減肥。 來到服務廳,人真多啊,在銀行辦理業務時,一般我們都按照這樣的步驟依次進行,取號排隊,辦理具體業務,對銀行工作人員進行評分,這樣一套工作流程不就是我們的模板方法模式?我們先來看看這個例子的類圖: ? ? ? ? ? ? ?![](https://box.kancloud.cn/2015-12-30_5683743820b2d.jpg) 有了類圖,我們的代碼需要如何實現呢: ? ? ? ? ? ? ? ~~~ //?客戶端調用?? ????class?Client?? ????{?? ????????static?void?Main(string[]?args)?? ????????{?? ????????????//?創建一個辦業務流程實例并調用模板方法?? ????????????Business?business?=?new??Business();?? ????????????business.?Flow();?? ????????????Console.Read();?? ????????}?? ????}?? ?? ????public?abstract?class?Business?? ????{?? ????????//?模板方法,不要把模版方法定義為Virtual或abstract方法,避免被子類重寫,防止更改流程的執行順序?? ????????public??void?Flow()?? ????????{?? ????????????Console.WriteLine("辦理業務的一般流程");?? ????????????this.LineUp();????????????//取號排隊?? ????????????this.Manage();????????????//辦理具體業務?? ????????????this.Graded();?????//對銀行工作人員進行評分?? ?????????????? ????????}?? ?? ????????//?第一步取號排隊?? ????????public??void?LineUp()?? ????????{?? ????????????Console.WriteLine("取號排隊");?? ????????}?? ?? ????????//?第二步辦理具體業務?? ????????public??void?Manage()?? ????????{?? ????????????Console.WriteLine("辦理具體業務");?? ????????}?? ?? ????????//?第三步對銀行工作人員進行評分?? ????????public??void?Graded()?? ????????{?? ????????????Console.WriteLine("對銀行工作人員進行評分");?? ????????}?? ????}?? ?? ????//?顧客A?? ????public?class??Business:?Flow?? ????{?? ????????? ????????public?override?void??Business()?? ????????{?? ????????????Console.WriteLine("顧客A辦理業務");?? ????????}?? ????}?? ?? ????//?顧客B?? ????public?class??Business?:?Flow?? ????{???????? ????????public?override?void??Business()?? ????????{?? ????????????Console.WriteLine("顧客B辦理業務");?? ????????}?? ????}?? ~~~ 經過銀行姐姐的辛苦工作,我的卡終于解鎖了,以后做事情要小心一點,不能這么馬虎了,都這么大個人了,是吧,言歸正傳,模板方法模式--準備一個抽象類,將部分邏輯以具體方法以及具體構造子的形式實現,然后聲明一些抽象方法來迫使子類實現剩余的邏輯。不同的子類可以以不同的方式實現這些抽象方法,從而對剩余的邏輯有不同的實現。這就是模版方法模式的用意。設計之旅,未完待續.......
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看