<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

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

          共 1777字,需瀏覽 4分鐘

           ·

          2021-04-12 16:44

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

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

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


          一. 開閉原則

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

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

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


          二.依賴倒置原則

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

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

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


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

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


          四.接口隔離原則

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

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

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

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


          五.迪米特原則

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


           六.里氏替換原則

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

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

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

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

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

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

                  與父類一樣


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

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

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

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

          原文鏈接:

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





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

          ??????

          ??長按上方微信二維碼 2 秒


          感謝點贊支持下哈 

          瀏覽 52
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  在线视频免费观看a | 国产黄色免费看 | 男人的天堂成人片 | 欧美日韩在线视频免费播放 | 嫩俩国产欧美啪啪九一 |