一個類別若負責的功能(函式)過多,就會把這些功能都偶合再一起(同一個類別內),如此可能造成一個功能的修改會減弱或限制這個類別去增加其他功能的能力。
開放封閉原則 (Open-Closed Principle, OCP) :
程式內的類別,函數,模組等應該要是可以擴增,但不可修改。
開發人員應將程式中常修改的部分做抽象,但不要做出不成熟的抽象。
程式設計中,抽象類別別包括下列4類:
1:過程抽象:能夠引入一些新的操作。
2:資料抽象:能夠引入新的資料物件類型。
3:反覆運算抽象:能夠反覆運算遍歷在集合中的元素,而不必顯示如何獲得元素的細節。
4:類型層次:能夠從多個單獨的資料類型中抽象成幾組相關的類型。
兩個類別如果不需要直接溝通,就不應該直接互相存取對方類別內的成員,但若需要另一個類別內的成員,可以透過第三方類別轉發該成員。
LoD法則主要強調,每個類別應該降低自己類別內成員的存取權限,以達到類別之間的低耦合,耦合越低越有利於複用,不會因修改一個類別而影響到另一個有關係類別。
參考資料:
大話設計(書)
https://zh.wikipedia.org/wiki/%E6%8A%BD%E8%B1%A1%E5%8C%96_(%E8%A8%88%E7%AE%97%E6%A9%9F%E7%A7%91%E5%AD%B8)
沒有留言:
張貼留言