小哈兒的 學(xué)習(xí)日記

          像瘋子一樣去戰(zhàn)斗!
          posts - 13, comments - 0, trackbacks - 0, articles - 0
          1. 單一職責(zé)原則(SRP):一個(gè)類應(yīng)當(dāng)只有一個(gè)改變的原因,類只需要知道一件事情,它們應(yīng)當(dāng)有一個(gè)單獨(dú)的職責(zé),要點(diǎn)就是當(dāng)一個(gè)類需要改變時(shí),應(yīng)當(dāng)只有一個(gè)原因。
          2. 開(kāi)放-封閉原則(OCP):軟件實(shí)體(類、模塊、函數(shù)等)應(yīng)當(dāng)為擴(kuò)展而開(kāi)放,又為修改而封閉。這個(gè)原則有一個(gè)相當(dāng)詳細(xì)的定義,但是一個(gè)簡(jiǎn)單的意思是:你應(yīng)當(dāng)能夠改變一個(gè)模塊的周邊環(huán)境而無(wú)須改變模塊本身。
          3. Liskov替換原則(LSP):子類型(subtypes)必須是為它們的基類型(base types)可替代的。
          4. 依存關(guān)系倒置原則(DIP) :A.高層模塊應(yīng)當(dāng)不依賴低層模塊,它們應(yīng)當(dāng)依賴于抽象。
                                                          B.抽象應(yīng)當(dāng)不依賴于細(xì)節(jié),細(xì)節(jié)應(yīng)當(dāng)依賴于抽象。
            更好的描述是:不要依賴那些容易變化的具體類。如果你要繼承一個(gè)類,從一個(gè)抽象類繼承吧。如果你要持有一個(gè)類的引用,從一個(gè)抽象的類引用吧。如果你要調(diào)用一個(gè)函數(shù),從一個(gè)抽象的函數(shù)調(diào)用吧。
          5. 接口隔離原則(ISP):客戶不應(yīng)當(dāng)依賴那些它們根本不用的方法。

          總結(jié):
          五個(gè)簡(jiǎn)單的原則是:
          1、SRP--一個(gè)類應(yīng)當(dāng)只有一個(gè)發(fā)生變化的原因。
          2、OCP――應(yīng)當(dāng)能夠改變一個(gè)類的環(huán)境,而無(wú)須改變類本身。
          3、LSP――避免造成派生類的方法非法或退化,一個(gè)基類的用戶應(yīng)當(dāng)不需要知道這個(gè)派生類。
          4、DIP ――用依賴于接口和抽象類來(lái)替代依賴容易變化的具體類。
          5、ISP――給一個(gè)對(duì)象的每一個(gè)用戶一個(gè)接口,這個(gè)接口僅有用戶需要的方法。

           

          主站蜘蛛池模板: 芦溪县| 罗城| 九龙坡区| 渑池县| 德昌县| 泌阳县| 方山县| 深圳市| 额尔古纳市| 白水县| 体育| 凌海市| 朝阳县| 巴彦淖尔市| 石渠县| 甘洛县| 南召县| 乌拉特前旗| 平顺县| 威宁| 志丹县| 汨罗市| 江城| 上林县| 沁水县| 民乐县| 望奎县| 土默特左旗| 静宁县| 宁海县| 贡嘎县| 迁安市| 田阳县| 固阳县| 当涂县| 蒙城县| 寿光市| 松滋市| 桂阳县| 郸城县| 阳谷县|