物件導向程式的九個體操練習
九個原則懶人包: 每個函式裡面只能有一層縮排 ,如果需要多一層,請多寫一個 method 去呼叫。 不要使用到 else 這個關鍵字 。 所有基本型別都包裝成物件 每一行只能出現 dot 一次 ( 即 每行只能呼叫一次 method ) 不要縮寫變數名稱 保持東西輕薄。 一個類裡不超過 50 行 。 從一個類裡處理的變數,不超過兩個 。不要用任何一個含超過兩個 instance 變數的 class 使用一個集合,則不再加入其它變數 。使用第一級 collections 命令它、告訴它。 將命令與查詢分離 。不要使用任何 getters/setters/properties 好的物件導向設計很難,我們都很同意何謂好的設計原則:高內聚力 (cohesion) 、低耦合 (loose coupling) 、不重複程式 (Don’t Repeat Yourselp) 、封裝 (encapsulation) 、可測試性、易閱讀性等等,但是實際寫的時候卻不容易化身為一行行的程式碼。這篇作者列了九條規則,並建議你練習寫個千行程式嚴格遵守看看,用以改善你的 OO 實作能力。 初次看到這九條時覺得有點誇張,但其實濃縮了不少 OO 想法在裡面,如果有閱讀過重構或物件導向設計原則等概念,應該能夠聯想到很多東西,挺有趣的。 1. 每個函式裡面只能有一層縮排,如果需要多一層,請多寫一個 method 去呼叫。 這個規則其實就是要求嚴格遵守 Compose Method :將邏輯操作轉換為細目等級相同的步驟,避免過深的邏輯而無法迅速了解,相信大家應該都有看 ( 寫 ) 過 M 型程式 吧 :p 2. 不要使用到 else 這個關鍵字。 避免寫出複雜的 nested conditional 程式。不論是 ” 重構 “ 或是 ” 重構-向範式前進 “ 這兩本書,都有很多篇幅花在討論如何簡化條件邏輯,作法包括 a. 重構一書提到的 Replace Nested Conditional with Guard Clauses 方式,直接使用 ret...