1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        架構(gòu)設(shè)計(jì)基本原則

        共 1777字,需瀏覽 4分鐘

         ·

        2021-04-12 16:44

        點(diǎn)擊上方藍(lán)色字體,選擇“標(biāo)星公眾號(hào)”

        優(yōu)質(zhì)文章,第一時(shí)間送達(dá)

        本文章大部分內(nèi)容來源于咕泡Tom老師的Srping5核心原理,我這里只是做一個(gè)記錄方便日后回顧,看不懂的朋友最好去看下原書。


        一. 開閉原則

               基本概念:指一個(gè)軟件實(shí)體(如類、模塊、和函數(shù))應(yīng)對(duì)擴(kuò)展開放,對(duì)修改關(guān)閉。強(qiáng)調(diào)用抽象構(gòu)建框架,用實(shí)現(xiàn)擴(kuò)展細(xì)節(jié)。核心思想就是面向抽象編程。 

               舉個(gè)現(xiàn)實(shí)中的例子:你每天需要工作8個(gè)小時(shí)的規(guī)定是關(guān)閉的,但你上下班的時(shí)間可以是開放的。

               代碼應(yīng)用:將公用的方法和業(yè)務(wù)邏輯封裝到一個(gè)接口或抽象類中,將不同的功能和業(yè)務(wù)邏輯單獨(dú)實(shí)現(xiàn)在新的實(shí)現(xiàn)類中,而不去修改原因的屬性和邏輯.


        二.依賴倒置原則

                基本概念:是指設(shè)計(jì)代碼結(jié)構(gòu)時(shí),高層模塊不應(yīng)該依賴低層模塊,二者都應(yīng)該依賴其抽象。抽象不應(yīng)該依賴細(xì)節(jié),細(xì)節(jié)應(yīng)該依賴抽象。通過依賴倒置,可以減少類與類之間的耦合性,提高系統(tǒng)的穩(wěn)定性,提高代碼的可讀性和可維護(hù)性,并且能夠降低修改程序所造成的風(fēng)險(xiǎn)

        注:以抽象為基準(zhǔn)比以細(xì)節(jié)為基準(zhǔn)搭建起來的架構(gòu)要穩(wěn)定得多,因此在拿到需求之后,要面向接口編程,先頂層再細(xì)節(jié)地設(shè)

        計(jì)代碼結(jié)構(gòu)。


        三.單一職責(zé)原則

              基本概念:不要存在多于一個(gè)導(dǎo)致類變更的原因假設(shè)我們有一個(gè)類負(fù)責(zé)兩個(gè)職責(zé),一旦發(fā)生需求變更,修改其中一個(gè)職責(zé)的邏輯代碼,有可能導(dǎo)致另一個(gè)職責(zé)的功能發(fā)生故障。


        四.接口隔離原則

              基本概念:用多個(gè)專門的接口,而不使用單一的總接口,客戶端不應(yīng)該依賴它不需要的接口。這個(gè)原則指導(dǎo)我們?cè)谠O(shè)計(jì)接口時(shí)應(yīng)當(dāng)注意以下幾點(diǎn):

            (1)一個(gè)類對(duì)另一個(gè)類的依賴應(yīng)該建立在最小的接口之上。

            (2)建立單一接口,不要建立龐大臃腫的接口。

            (3)盡量細(xì)化接口,接口中的方法盡量少(不是越少越好,一定要適度)


        五.迪米特原則

               基本概念:是指一個(gè)對(duì)象應(yīng)該對(duì)其他對(duì)象保持最少的了解,又叫最少知道原則,盡量降低類與類之間的耦合度。


         六.里氏替換原則

               基本概念:原本的定義比較抽象,不再贅述??梢岳斫鉃橐粋€(gè)軟件實(shí)體如果適用于一個(gè)父類,那么一定適用于其子類,所有

        引用父類的地方必須能透明地使用其子類的對(duì)象,子類對(duì)象能夠替換父類對(duì)象,而程序邏輯不變。根據(jù)這個(gè)理解,引申含義為:子類可以擴(kuò)展父類的功能,但不能改變父類原有的功能。

        (1)子類可以實(shí)現(xiàn)父類的抽象方法,但不能覆蓋父類的非抽象方法。

        (2)子類可以增加自己特有的方法。

        (3)當(dāng)子類的方法重載父類的方法時(shí),方法的前置條件(即方法的輸入/入?yún)ⅲ┮雀割惙椒ǖ妮斎雲(yún)?shù)更寬松。

        (4)當(dāng)子類的方法實(shí)現(xiàn)父類的方法時(shí)(重寫/重載或?qū)崿F(xiàn)抽象方法),方法的后置條件(即方法的輸出/返回值)要比父類更嚴(yán)格或

                與父類一樣


        七.合成復(fù)用原則

             基本概念:指盡量使用對(duì)象組合/聚合而不是繼承關(guān)系達(dá)到軟件復(fù)用的目的。可以使系統(tǒng)更加靈活,降低類與類之間的耦合度,一個(gè)類的變化對(duì)其他類造成的影響相對(duì)較少。

        ————————————————

        版權(quán)聲明:本文為CSDN博主「Kaite_zhh」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。

        原文鏈接:

        https://blog.csdn.net/zhouhuahao/article/details/105144409





        粉絲福利:Java從入門到入土學(xué)習(xí)路線圖

        ??????

        ??長(zhǎng)按上方微信二維碼 2 秒


        感謝點(diǎn)贊支持下哈 

        瀏覽 52
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            麻豆专区| 影音先锋国产在线 | 2区3区在线涩网涩 | 国产日韩欧美精品午夜一区二区三区 | 不花钱就能看的曹逼视频 | 国产下药迷倒白嫩丰满美女j9 | 全免费一级毛片免费看无码播放 | 嫩草精品福利视频在线观看 | 69久久成人精品 | 国产禁女女网站免费看 |