• <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

            亚洲国产二区三区久久| 久久一本综合| 伊人久久大香线蕉影院95| 日本三级久久网| 色综合久久夜色精品国产| 色婷婷综合久久久久中文| 国产精品欧美亚洲韩国日本久久 | 久久久WWW成人| 7777久久久国产精品消防器材| 久久久久亚洲Av无码专| 成人a毛片久久免费播放| 99久久做夜夜爱天天做精品| 久久99久久99小草精品免视看| 久久综合给合综合久久| 国产成人久久激情91 | 亚洲AV无码久久精品狠狠爱浪潮| 精品久久久久久国产潘金莲| 久久精品国产清自在天天线| 欧美一区二区三区久久综 | 无码人妻久久一区二区三区| 国産精品久久久久久久| 国产综合久久久久久鬼色| 亚洲婷婷国产精品电影人久久| 久久无码av三级| 狠狠88综合久久久久综合网| 综合网日日天干夜夜久久| 亚洲国产精品嫩草影院久久| 国内精品久久久久久久影视麻豆| 久久亚洲日韩精品一区二区三区| 一级a性色生活片久久无少妇一级婬片免费放 | 一本一道久久综合狠狠老| 色天使久久综合网天天| 精品久久国产一区二区三区香蕉| 99久久99久久久精品齐齐| 国产精品无码久久综合| 久久久久人妻精品一区二区三区 | 久久久久免费视频| 精品久久久久中文字| 一本色道久久88加勒比—综合| 国产一区二区精品久久| 九九99精品久久久久久|