QWAN(無名的質)、Gate(門)、Way(道)
利用道從門演化成質,就是采用一定的模式利用一種語言達到軟件的完美。
無名天地之始,有名萬物之母。
名是死的混沌。
道生一,一生二,二生三,三生萬物。萬物負陰而抱陽,沖氣以為和。
氣聚而有其形,氣散而歸于無形。
《老子》:善為士者不武。--好的設計師不會在他設計的系統中再做
大規模的修改。
《老子》:天下有道,卻走馬以糞;天下無道,戎馬生于效。
開閉原則:對擴展開放,對修改關閉。--抽象化是關鍵,對可變性進行封裝。
《太玄》:知固而不知革,物失其則;知革而不知固,物失其均。
所有類圖的繼承結構都不會超過兩層,否則就會失去對于可變性的封裝原則,就會在一個封裝內含有多個可變元素。
里式代換原則:任何基類可以出現的地方,子類一定可以出現。
依賴倒轉原則:要依賴與抽象,不要依賴與實現。
合成/聚合復用原則:要盡量使用合成和聚合,少使用繼承。
迪米特法則:一個軟件實體應該盡可能少的與其他實體發生相互作用。
接口隔離原則:應當為client提供盡可能小的單獨的接口,而不是提供大的總的接口。
可插拔性的關鍵在于存在一個接口,以及每個構件都實現了這個接口。
應當優先使用接口實現抽象類型。
抽象類是用來繼承的,具體類不是用來繼承的。
抽象類應該具有盡可能多的共同代碼,應當具有盡可能少的數據。
類之間的繼承是很容易被濫用的復用工具。
防止繼承濫用的原則:
- 區分has-a和is-a的區別
- 子類有擴展超類的責任,而不是替換掉
- 不要從工具類繼承
posted on 2006-06-09 02:34
rd2pm 閱讀(656)
評論(0) 編輯 收藏 所屬分類:
java language 、
system design