色色一区二区三区,一本大道道久久九九AV综合,国产香蕉97碰碰视频va碰碰看,综合亚洲国产2020

    <legend id="mljv4"><u id="mljv4"><blockquote id="mljv4"></blockquote></u></legend>

    <sub id="mljv4"><ol id="mljv4"><abbr id="mljv4"></abbr></ol></sub>
      <mark id="mljv4"></mark>

      得墨忒爾定律和超寬界面

      2021-02-18 21:48

      得墨忒爾定律在某些明顯的情況下是有意義的更好的步行()# worsedog.腿().front().left().move()狗腿().back().right();任何知識。這更糟嗎?打印

      解答動態(tài)

      • LoD或最小知識原則與不變性無關(guān)。它是關(guān)于通過減少間接依賴來解耦系統(tǒng)的。
        在dog情況下,您只需要了解dogs就可以進行鏈式調(diào)用。
        在帳戶情況下,當某個模塊使用帳戶時,它還需要了解用戶,甚至可能了解地址。所以不僅僅是關(guān)于朋友,還有朋友的朋友。這會導(dǎo)致復(fù)雜而耗時的更改傳播:例如,地址類中的更改可能會影響用戶類和帳戶類。
        解決方法是告訴對象他們應(yīng)該做什么,而不必對詳細信息:
        account.print();//帳戶將調(diào)用用戶.打。ǎ┻@當然說起來容易做起來難,因為這可能會造成其他問題(例如,如果需要printSumary()和printDetails(),則接口臃腫)。有時候,你只需要知道更親密朋友的朋友。最終,設(shè)計不是要尊重所有的“法則”,而是要平衡不同的原則以獲得最佳的配合。

        • 向接口添加更多的方法并不總是德米特法則的解決方案。你不需要區(qū)分這些案例,你需要找到一種不同的方法來解決它們頁碼:
          另一方面,在類級別,如果LoD沒有正確使用,可能會開發(fā)出需要引入許多輔助方法的寬接口(即擴大的接口)。這是由于糟糕的設(shè)計,而不是LoD本身的結(jié)果。如果使用包裝器方法,則意味著通過包裝器調(diào)用的對象應(yīng)該是調(diào)用類中的依賴項示例:
          print(帳戶.用戶().fullName())打印(帳戶.用戶().socialSecurityNumber()) 您的呼叫方是否需要與帳戶進行交互?刪除作為依賴項的帳戶并提供用戶作為參數(shù)改為:
          打。╱ser().fullname())打。╱ser().socialSecurityNumber())

          • End

          免責聲明:

          本頁內(nèi)容僅代表作者本人意見,若因此產(chǎn)生任何糾紛由作者本人負責,概與琴島網(wǎng)公司無關(guān)。本頁內(nèi)容僅供參考,請您根據(jù)自身實際情況謹慎操作。尤其涉及您或第三方利益等事項,請咨詢專業(yè)人士處理。