一、概念
1.1、定義
又稱為靜態(tài)工廠方法(Static Factory Method)模式,可以根據(jù)參數(shù)Key的創(chuàng)建并返回不同的實(shí)例。

SimpleFactory.png
- Factory,工廠類: 負(fù)責(zé)根據(jù)不同入?yún)?,?chuàng)建不同的實(shí)例對象
- Product,產(chǎn)品抽象類: 產(chǎn)品類的抽象類或者接口,方便產(chǎn)品的擴(kuò)展
- ConcreteProduct,具體產(chǎn)品類: 具體擴(kuò)展的產(chǎn)品類
1.2、解決的問題
- 解決問題:對繼承同一個抽象基類或者接口的產(chǎn)品類的實(shí)例化過程進(jìn)行封裝。
二、模式的應(yīng)用和優(yōu)缺點(diǎn)
2.1、應(yīng)用場景
- 應(yīng)用實(shí)例:JDK類庫中廣泛使用了簡單工廠模式,如工具類
java.text.DateFormat,它用于格式化一個本地日期或者時間。public final static DateFormat getDateInstance(int style); - 應(yīng)用實(shí)例:Java加密技術(shù),獲取不同加密算法的密鑰生成器
KeyGenerator keyGen=KeyGenerator.getInstance("DESede");
2.2、優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
對類的實(shí)例化過程的統(tǒng)一封裝,提高代碼可復(fù)用性,降低系統(tǒng)耦合度。
可以將傳入的參數(shù)進(jìn)行寫入文件,動態(tài)的配置類的創(chuàng)建過程。缺點(diǎn):優(yōu)點(diǎn)即是缺點(diǎn),類實(shí)例化全部集中于一個類方法中,擴(kuò)展變的不容易,也不符合開閉原則。