java的設計模式大體上分為三大類:
創(chuàng)建型模式(5種):工廠方法模式卵酪,抽象工廠模式幌蚊,單例模式,建造者模式溃卡,原型模式溢豆。
結構型模式(7種):適配器模式,裝飾器模式瘸羡,代理模式漩仙,外觀模式,橋接模式犹赖,組合模式讯赏,享元模式。
行為型模式(11種):策略模式冷尉、模板方法模式、觀察者模式系枪、迭代子模式雀哨、責任鏈模式、命令模式私爷、備忘錄模式雾棺、狀態(tài)模式、訪問者模式衬浑、中介模式捌浩、解釋器模式。
設計模式遵循的原則有6個:
1工秩、開閉原則(Open Close Principle)
對擴展開放尸饺,對修改關閉。
2助币、里式代換原則(Liskov Substitution Principle)
只有當衍生類可以替換掉基類浪听,軟件單位功能不受到影響時,基類才能真正被復用眉菱,而衍生類也能夠在基類的基礎上增加新的行為迹栓。
3、依賴倒轉原則(Dependence Inversion principle)
這個是開閉原則的基礎俭缓,對接口編程克伊,依賴于抽象而不依賴于具體。
4华坦、接口隔離原則(Interface Segregation Principle)
使用多個隔離的接口來降低耦合度愿吹。
5、迪米特法則(最少知道原則)(Demeter Principle)
一個實體應當盡量少的與其他實體之間發(fā)生相互作用季春,使得系統(tǒng)功能模塊相對獨立洗搂。
6、合成復用原則(Composite Reuse Principle)
原則是盡量使用合成/聚合的方式,而不是使用繼承耘拇。繼承實際上破壞了類的封裝性撵颊,超類的方法可能會被子類修改。
簡單理解:
1.邏輯代碼獨立到單獨的方法中惫叛,注重封裝性--易讀倡勇,易復用。
2.寫類嘉涌,寫方法妻熊,寫功能時,應考慮其移植性仑最,復用性:防止一次性代碼扔役!
3.熟練運用繼承的思想:
找出應用中可能需要變化之處,把它們獨立出來警医,不要和那些不需要變化的代碼混在一起亿胸。
1。工廠模式(Factory Method)
常用的工廠模式是靜態(tài)工廠预皇,利用static方法侈玄,作為一種類似于常見的工具類Utils等輔助效果,一般情況下工廠類不需要實例化吟温。
interface food{}
class A implements food{}
class B implements food{}
class C implements food{}
public class StaticFactory {
private StaticFactory(){}
public static food getA(){ return new A(); }
public static food getB(){ return new B(); }
public static food getC(){ return new C(); }
}
class Client{
//客戶端代碼只需要將相應的參數(shù)傳入即可得到對象
//用戶不需要了解工廠類內部的邏輯序仙。
public void get(String name){
food x = null ;
if ( name.equals("A")) {
x = StaticFactory.getA();
}else if ( name.equals("B")){
x = StaticFactory.getB();
}else {
x = StaticFactory.getC();
}
}
}