由於抽象靈活性好,適應性廣,只要抽象的合理,能夠基本保持軟件架構的穩定。而軟件中易變的細節,咱們用從抽象派生的實現類來進行擴展,當軟件須要發生變化時,咱們只須要根據需求從新派生一個實現類來擴展就能夠了。固然前提是咱們的抽象要合理,要對需求的變動有前瞻性和預見性才行。html
用抽象構建框架,用實現擴展細節的注意事項而已:單一職責原則告訴咱們實現類要職責單一;里氏替換原則告訴咱們不要破壞繼承體系;依賴倒置原則告訴咱們要面向接口編程;接口隔離原則告訴咱們在設計接口的時候要精簡單一;迪米特法則告訴咱們要下降耦合。而開閉原則是總綱,他告訴咱們要對擴展開放,對修改關閉。編程
1.1 單一職責原則:設計模式
定義:不要存在多於一個致使類變動的緣由。通俗的說,即一個類只負責一項職責。 架構
1.2 里氏替換原則:框架
定義:全部引用基類的地方必須能透明地使用其子類的對象。post
1.3 依賴倒置原則:spa
定義:高層模塊不該該依賴低層模塊,兩者都應該依賴其抽象;抽象不該該依賴細節;細節應該依賴抽象。.net
1.4 接口隔離原則:設計
定義:客戶端不該該依賴它不須要的接口;一個類對另外一個類的依賴應該創建在最小的接口上。htm
1.5 迪米特法則:
定義:一個對象應該對其餘對象保持最少的瞭解。儘可能下降類與類之間的耦合。
1.6 開閉原則:
這個原則其實就是對上面五個原則的一個總結,只要遵照上面五個,這個天然就造成了
http://www.uml.org.cn/sjms/201211023.asp
參考:http://blog.csdn.net/jason0539/article/details/44956775