1 將相關的東西放在一塊兒。若是一個函數操做一個全局變量,最好將它們做爲一個類的屬性和方法。python
2 不要讓對象之間過於親密。方法應只關心其所屬實例的屬性,對於其餘實例的狀態,讓它們本身去管理就行了。函數
3 慎用繼承,尤爲是多重繼承。繼承有時頗有用,但在有些狀況下可能帶來沒必要要的複雜性,要正確地使用多重繼承很難,要排除其中的bug更難。spa
4 保持簡單。讓方法短小緊湊。通常而言,應確保大多數方法都能在30秒以內讀完並理解。對於其他的方法,儘量將其篇幅控制在一頁或一屏內。對象
肯定須要哪些類以及這些類應包含哪些方法時,嘗試像下面這樣作。繼承
(1)將有關問題的描述(須要程序作什麼)記錄下來,並給全部的名詞、動詞和形容詞加上標記。變量
(2)在名詞中找出可能的類。bug
(3)在動詞中找出可能的方法。程序
(4)在形容詞中找出肯的屬性。方法
(5)將找出的方法和屬性分配給各個類。co
有了面向對象模型的草圖後,還須要考慮類和對象之間的關係(如繼承或協做)以及透明的職責。爲進一步改進模型,可像下面這樣作。
(1)記錄(或設想)一系列用例,即便用程序的場景,並盡力確保這些用例涵蓋了全部的功能。
(2)透徹而仔細地考慮每一個場景,確保模型包含了所需的一切。若是有遺漏,就加上;若是有不太對的地方,就修改。不斷的重複這個過程,直到對模型滿意爲止。
有了你認爲行之有效的模型後,就能夠着手編寫代碼了。你極可能須要修改模型或程序的某些部分,所幸這在python中很容易,請不用擔憂。只管按這裏說的去作就好。