設計模式理解---之一

 

----6大原則
這只是一個基本的原則,在實際中有時用是矛盾的,要權宜而行
1、單一原則
從職責的角度來講,業務需求
2、里氏替換
子類可完全代替父類、子類覆蓋父類是可以放大自己方法的參數、和方法的權限、返回值可以縮小範圍,注意理解
3、依賴倒置
細節依賴於抽象,契約
4、接口隔離
一般的類都會有藉口,藉口要保持純潔,不要太臃腫,和該類無關的方法不要再借口中,一個類可以設置多個藉口、還記得美女類嘛,不同時期美女的標準時不一樣的
5、迪米特法則
對於高層(高層不用關心細節)知道的越少越好
6、開閉原則
開擴展關修改
---------------模式
1、單例模式
1)懶漢式(static 方法中new)和餓漢式(static final 屬性new)、一般用餓漢式、因爲懶漢式在高併發的情況下可能在內存中會出現多個
2)單例只有一個實例,注意垃圾回收機制,如果這個很常見沒有使用,會被銷燬,在應用中要注意保存實例狀態等信息。
特殊:有上限的單例模式
2、工廠模式
一個車間生產零件
3、抽象工廠
可以理解爲特殊的工廠模式,可以理解爲不同的車間,生產的零件
4、模板方法模式
父類調用子類,其實這樣說是錯誤的,在抽象類中定義了子類的執行順序,子類的執行順序都是一樣的,,父類的這個模板一般是把子類的這些操作重新組裝,子類可以不再關心她,直接調用執行就可以了,父類的這個方法一般是final的,禁止子類覆蓋修改的

5、建造者模式
一般和建造者模式一起來使用,建造者模式注重的是零件(模板中的零件,)的裝配順序,而產生很多模板,而工廠模式注重的是對象的產生和創建,不是裝配,即組裝的順序。
該模式經常和模板方法模式一起使用,模板方法模式把公共定死的順尋寫到抽象的父類中,對於建造者模式負責組織動態產生的模板、即有一個建造者類,吧模板的基本零件在這裏一一組裝,而產生新的模板,對於建造者比較多的一般會有一個導演類,負責調用建造者類產生模板(有點像一個客戶端)
6、代理模式
動態代理和靜態代理
7、原型模式
1)、注意深copy和淺copy
2)、原型模式是不會執行構造方法的,即時有點也是缺點,因爲他是以二進制流的形式在內存copy的
3)、final的類型是不能copy的
白話:1)一般對於一系列事物的處理,前後的各種狀態,可以用他來比較,在修改時copy一份 ,等等
 2)他比new要快很多,
 3)如果已知一個對象,要在這個對象上稍加修改後可以生產很多對象可以用這種模式、(人從1歲、到2歲、...30歲)
8、中介模式
多個類之間存在多對多的關係,即類圖是網狀的關係,可以考慮用中介這模式、來協調各個類之間的關係,可以有多箇中介者,,把關係類似的放到一起來管理。
經典案例就是MVC
區分他和代理之間的關係

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章