###### tags: `CleanCode` <STYLE> p,li,oi,h3{ font-family:"微軟正黑體"; } </STYLE> # 類別 > 1. 類別的開頭順序: public variable→private variable→ →public function→private function放在呼叫他的函式後面 > 2. 測試程式要存取的變數通常做為protected型態 # #### ⚠單一職責原則(Single Responsibility Principle, SRP) 一個類別應該只有一個職責,只能有一個修改的理由。 * 類別的命名應足以描述其職責,如果無法取個簡明的名稱,可能代表此class職責過大。 * 確認類別的職責可以助於在程式中找出或建立抽象概念 # #### ⚠開放-閉合原則(Open-Closed Principke, OCP) 類別應對於擴充(ex:增加新功能)具有開放性,但對修改則具有封閉性(修改子類別,不影響其他類別)。 # #### ⚠相依性反向原則(Dependnecy Inversion Principle, DIP) 類別應要相依於抽象概念(abstract或interface類別),而非在具體類別的細節上(也就是類別的實現細節)。因為當細節進行變動時,易使相依於具體類別的細節之類別產生風險。 # #### ⚠凝聚性 * 類別中的每個函式,應該使用一個或多個類別中宣告的變數。 * 若遇到某些類別的實體變數,僅有少數被某些少數函式所用,此時就要**考慮將其自成新的類別**,保持類別的凝聚性。