• <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)貼],因其丑陋,見(jiàn)諒!~
            隨筆 - 1469, 文章 - 0, 評(píng)論 - 661, 引用 - 0
            數(shù)據(jù)加載中……

            OOP遵照:?jiǎn)我宦氊?zé)原則--SRP

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

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

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

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

             

            二、舉例說(shuō)明:

            違反SRP原則代碼: PHP開(kāi)源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開(kāi)源com

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

             

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

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

             

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

            亚洲乱码日产精品a级毛片久久| 深夜久久AAAAA级毛片免费看| 国内精品久久久久久久久电影网 | 麻豆AV一区二区三区久久| 无码八A片人妻少妇久久| 久久天天躁狠狠躁夜夜网站| 精品久久久久久综合日本| 久久久久综合中文字幕| 99精品久久久久久久婷婷| www.久久热.com| 久久受www免费人成_看片中文| 久久久久亚洲av无码专区导航| 99久久亚洲综合精品成人| 久久久亚洲裙底偷窥综合| 99久久久精品| 久久亚洲美女精品国产精品| 久久精品国产只有精品66| 欧美亚洲色综久久精品国产| 久久久精品久久久久特色影视| 97久久精品无码一区二区天美| 亚洲精品综合久久| 久久九色综合九色99伊人| 国产成人精品久久免费动漫| 99精品久久久久久久婷婷| 欧美日韩精品久久久久| 亚洲伊人久久大香线蕉苏妲己| 国产成人精品三上悠亚久久| 热综合一本伊人久久精品| 精品久久久久久久久久中文字幕 | 99久久夜色精品国产网站| 欧美性猛交xxxx免费看久久久| 久久精品国产半推半就| 91久久精品91久久性色| 久久久久久久久久久久中文字幕| 久久丫忘忧草产品| 久久久久久久免费视频| 亚洲Av无码国产情品久久| 亚洲人AV永久一区二区三区久久| 理论片午午伦夜理片久久| 国内精品久久久久久麻豆| 久久人妻少妇嫩草AV蜜桃|