Java23種設計模式

2021-09-19 16:52:41 字數 2087 閱讀 1182

建立型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。

結構型模式,共七種:介面卡模式、裝飾器模式、**模式、外觀模式、橋接模式、組合模式、享元模式。

行為型模式,共十一種:策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模 

式、狀態模式、訪問者模式、中介者模式、直譯器模式。 

定義:單例物件的類只能允許乙個例項存在

實現:餓漢式和懶漢式和

餓漢式:

public class singleton 

// 返回物件例項

public static singleton getinstance()

}

懶漢式:

public class singleton 

// 提供對外方法

public static singleton getinstance() }}

return singleton;

} }

定義:常用的例項化物件模式了,是用工廠方法代替new操作的一種模式。

工廠方法模式分為三種:

普通工廠模式,就是建立乙個工廠類,對實現了同一介面的一些類進行例項的建立。 

多個工廠方法模式,是對普通工廠方法模式的改進,在普通工廠方法模式中,如果傳遞的字串出錯,則不能正確建立物件,而多個工廠方法模式是提供多個工廠方法,分別建立物件。 

靜態工廠方法模式,將上面的多個工廠方法模式裡的方法置為靜態的,不需要建立例項,直接呼叫即可。 

普通工廠模式:

public inte***ce sender 

public class mailsender implements sender

} public class smssender implements sender

} public class sendfactory else if ("sms".equals(type)) else

} }

多個工廠方法模式:

public class sendfactory 

public sender producesms()

} public class factorytest

}

靜態工廠方法模式:

public class sendfactory 

public static sender producesms()

} public class factorytest

}

抽象工廠模式,建立多個工廠類,這樣一旦需要增加新的功能,直接增加新的工廠類就可以了,不需要修改之前的**。

public inte***ce provider 

public inte***ce sender

public class mailsender implements sender

} public class smssender implements sender

} public class sendsmsfactory implements provider

} public class sendmailfactory implements provider

} public class test

}

工廠類模式提供的是建立單個類的模式,而建造者模式則是將各種產品集中起來進行管理,用來建立復合物件,所謂復合物件就是指某個類具有不同的屬性,其實建造者模式就是前面抽象工廠模式和最後的  test  結合起來得到的。

public class builder 

} public void producesmssender(int count)

} }public class builder

} public void producesmssender(int count)

} }public class testbuilder

}

Java23種設計模式

定義 設計模式 design pattern 是一套反覆使用 多數人知曉的 經過分類編目的 設計經驗的總結。使用設計模式是為了可重用 讓 更容易被他人理解 保證 可靠性。單例模式,特點 全域性只有乙個例項。定義 單例模式,也叫單子模式,是一種常用的軟體設計模式。在應用這個模式的時候,單例物件的類必須...

Java 23種設計模式

型別 模式建立型工廠模式 抽象工廠模式 單例模式 建造者模式 原型模式 結構型介面卡模式 橋接模式 組合模式 外觀模式 裝飾者模式 享元模式 模式 行為型責任鏈模式 命令模式 直譯器模式 迭代模式 中介者模式 備忘錄模式 觀察者模式 狀態模式 策略模式 模板方法模式 訪問者模式 模式說明 工廠模式 ...

Java23種設計模式 Adapter模式 二

adapter模式 介面卡 這個設計模式相對來說還是比較容易理解的.本文以電源介面卡為例子,其中banner類就相當於是240v的實際輸入電壓,print介面,則代表著介面卡的輸出,就當他是12v和24v,而printbanner類就相當於是介面卡,他擁有著轉換功能.目錄 banner類 publi...