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

            一本色道久久88—综合亚洲精品| 熟妇人妻久久中文字幕| 99久久国产综合精品五月天喷水 | 99久久精品国产一区二区| 久久亚洲国产成人影院网站| 思思久久99热只有频精品66| 久久A级毛片免费观看| 亚洲а∨天堂久久精品9966| 久久久久亚洲Av无码专| 欧美亚洲国产精品久久蜜芽| 亚洲国产精品无码成人片久久| 国产精品久久久久久久久免费| 日本WV一本一道久久香蕉| 久久亚洲中文字幕精品有坂深雪| 狠狠色丁香婷婷久久综合| 国产精品一区二区久久| 色狠狠久久AV五月综合| 久久免费视频6| 久久电影网一区| 精品人妻伦九区久久AAA片69| 国产激情久久久久影院| 国产午夜福利精品久久| 精品久久久久久无码专区不卡| 久久亚洲精品无码VA大香大香| 国产精品一区二区久久不卡| 99久久99久久精品国产| 亚洲级αV无码毛片久久精品| 久久精品女人天堂AV麻| 久久国产综合精品五月天| 久久精品a亚洲国产v高清不卡| 欧美亚洲日本久久精品| 久久97久久97精品免视看秋霞 | 91久久成人免费| 精品久久久久久中文字幕人妻最新| 久久精品国产欧美日韩99热| 色播久久人人爽人人爽人人片AV| 久久亚洲国产精品一区二区| 久久亚洲AV成人无码电影| 久久人人添人人爽添人人片牛牛| www.久久热.com| 久久这里只有精品久久|