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

          單一職責(zé)與樹的聯(lián)系

          共 1119字,需瀏覽 3分鐘

           ·

          2021-05-23 21:55

          之前我們在寫重構(gòu)的學(xué)習(xí)筆記的時候說我們寫代碼的時候要盡量做到一個類只做領(lǐng)域內(nèi)的事,不能跨領(lǐng)域做事,不能幫其他領(lǐng)域做事,并要求一個類應(yīng)該將其相關(guān)的業(yè)務(wù)能力做到最好。對于微服務(wù)也是一樣的,要進(jìn)行抽練進(jìn)行業(yè)務(wù)的沉淀,然后形成優(yōu)質(zhì)代碼資產(chǎn)。那么這里說的單一職責(zé)原則是否就是這個意思?讓我們一探究竟吧!
          單一職責(zé)原則就一個類而言,應(yīng)該僅有一個引起它變化的原因。
          單一職責(zé)原則其實說的是一種理念,就是各掃門前雪的理念。我們在編寫代碼中要善于將業(yè)務(wù)類進(jìn)行抽練和歸納,讓代碼更加清晰,小的變動不會引起大規(guī)模的改造。這塊我們稍微舉個例子就是說我們對于一個商品的價格的總價進(jìn)行計算,如果我們將價格還有打折或者促銷甚至積分等業(yè)務(wù)都合并到一個類中,那么我們這個類將會變的很大,而且如果涉及的商品比較多的時候,甚至商品具有不同的屬性,那么用一個類去兼容各種情況未免太傻逼了。最后的最后就是一處改動導(dǎo)致多處改動,在某些情況下開發(fā)人員甚至?xí)x擇直接類的代碼復(fù)制過來去兼容新的業(yè)務(wù),但是兩者代碼的相似性很強(qiáng),所以必然就是代碼中的壞味道。針對這種情況,有什么好的解決辦法?
          我們整個業(yè)務(wù)流程勢必要聚合各種類,也就是說我們已經(jīng)做好了單一職責(zé),就是將不同的領(lǐng)域內(nèi)的功能和數(shù)據(jù)進(jìn)行拆分。但是考慮與一個決策的過程,那么勢必有個聚合決策的過程,這里我們可把以聚合決策的類抽練出來,因為這個類的領(lǐng)域就是決策和調(diào)度,因此也符合單一職責(zé)原則。在具體的處理類上,因為我們已經(jīng)將決策的屬性外提,因此剩余的部分就是該領(lǐng)域的功能。
          綜合上邊的敘述,我們在開發(fā)中應(yīng)該要善于將邏輯調(diào)度進(jìn)行抽練形成調(diào)度器類,而將單一領(lǐng)域內(nèi)的業(yè)務(wù)處理下沉形成運(yùn)算器。這樣使得我們的業(yè)務(wù)流程不再是一個整體,而是多個運(yùn)算單元和調(diào)度單元組成,如果發(fā)生修改,那么我僅僅需要修改具體的運(yùn)算單元或者調(diào)度單元即可。
          作者大概的想了一下,對于一條業(yè)務(wù)流程來說,我們的代碼要遵循單一職責(zé)原則,就應(yīng)該將代碼的組成分為決策調(diào)度類和運(yùn)算單元類的組合模式,如上圖所示。
          1、兩個運(yùn)算單元類不能直接調(diào)度,運(yùn)算單元類的調(diào)度應(yīng)該由決策調(diào)度類進(jìn)行整合。
          2、決策調(diào)度類可以任意接納決策調(diào)度類和運(yùn)算單元類。
          我們更認(rèn)為好的代碼應(yīng)該是形似一棵樹,樹的分支我們認(rèn)為就是決策調(diào)度類,用來進(jìn)行上下游資料養(yǎng)分的傳遞,運(yùn)算單元類我們可以認(rèn)為是樹葉,主要就是光合作用進(jìn)行數(shù)據(jù)加工。樹枝上可以長樹葉也可以長樹枝,但是樹葉上是不能長出樹枝的。

          瀏覽 33
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

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

          手機(jī)掃一掃分享

          分享
          舉報
          <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>
                  国产操比小视频 | 青娱乐在线国产 | 天天综合干| 豆花视频在线观看免费 | 日韩久久精品国产亚洲AV成人 |