• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            woaidongmao

            文章均收錄自他人博客,但不喜標(biāo)題前加-[轉(zhuǎn)貼],因其丑陋,見諒!~
            隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
            數(shù)據(jù)加載中……

            OOP遵照:單一職責(zé)原則--SRP

            一、SRP簡介(SRP--Single-Responsibility Principle):

            就一個(gè)類而言,應(yīng)該只專注于做一件事和僅有一個(gè)引起它變化的原因。PHP開源com

                所謂職責(zé),我們可以理解他為功能,就是設(shè)計(jì)的這個(gè)類功能應(yīng)該只有一個(gè),而不是兩個(gè)或更多。也可以理解為引用變化的原因,當(dāng)你發(fā)現(xiàn)有兩個(gè)變化會要求我們修改這個(gè)類,那么你就要考慮撤分這個(gè)類了。因?yàn)槁氊?zé)是變化的一個(gè)軸線,當(dāng)需求變化時(shí),該變化會反映類的職責(zé)的變化

            就像一個(gè)人身兼數(shù)職,而這些事情相互關(guān)聯(lián)不大,,甚至有沖突,那他就無法很好的解決這些職責(zé),應(yīng)該分到不同的人身上去做才對。

             

            二、舉例說明:

            違反SRP原則代碼: PHP開源com
            modem
            接口明顯具有兩個(gè)職責(zé):連接管理和數(shù)據(jù)通訊;

            interface Modem
            {
                public void dial(string pno);
                public void hangup();
                public void send(char c);
                public void recv();
            }

             

            如果應(yīng)用程序變化影響連接函數(shù),那么就需要重構(gòu):

            interface DataChannel
            {
                public void send(char c);
                public void recv();
            }
            interface Connection
            {
                public void dial(string pno);
                public void hangup();
            }

             

            三、SRP優(yōu)點(diǎn):PHP開源com

            消除耦合,減小因需求變化引起代碼僵化性臭味

             

            四、使用SRP注意點(diǎn):

            1、一個(gè)合理的類,應(yīng)該僅有一個(gè)引起它變化的原因,即單一職責(zé);
            2
            、在沒有變化征兆的情況下應(yīng)用SRP或其他原則是不明智的;
            3
            、在需求實(shí)際發(fā)生變化時(shí)就應(yīng)該應(yīng)用SRP等原則來重構(gòu)代碼;
            4
            、使用測試驅(qū)動開發(fā)會迫使我們在設(shè)計(jì)出現(xiàn)臭味之前分離不合理代碼;
            5
            、如果測試不能迫使職責(zé)分離,僵化性和脆弱性的臭味會變得很強(qiáng)烈,那就應(yīng)該用FacadeProxy模式對代碼重構(gòu);

             

            posted on 2008-12-22 21:29 肥仔 閱讀(596) 評論(0)  編輯 收藏 引用 所屬分類: OOP

            亚洲天堂久久久| 一级做a爰片久久毛片免费陪 | 久久99毛片免费观看不卡| 久久久精品国产| 久久国产精品无码一区二区三区 | 国产一区二区精品久久凹凸| 2021久久精品免费观看| 国产一区二区久久久| 国产亚洲精品久久久久秋霞| 久久人人爽人人精品视频| 久久久久亚洲AV无码专区首JN | 国产成人久久精品一区二区三区 | 性欧美大战久久久久久久久| 香蕉久久影院| 久久久av波多野一区二区| 亚洲AV成人无码久久精品老人| 亚洲欧美国产精品专区久久| 久久无码国产| 精品久久久久久| 伊人久久久AV老熟妇色| 999久久久国产精品| 亚洲国产小视频精品久久久三级| 中文字幕人妻色偷偷久久| 久久国产精品一区二区| 婷婷久久综合九色综合绿巨人| 久久亚洲美女精品国产精品| 久久精品国产99国产精偷| 久久久国产99久久国产一| 97r久久精品国产99国产精| 久久青青草原精品国产不卡| 久久婷婷五月综合国产尤物app| 久久国产精品久久国产精品| 久久精品免费网站网| 久久久久久午夜成人影院| 久久成人国产精品一区二区| 久久久久久青草大香综合精品| 久久国产色AV免费观看| 亚洲中文精品久久久久久不卡| 久久精品女人天堂AV麻| 国产一级做a爰片久久毛片| 久久青青草原精品国产|