簡單工廠模式是類的建立模式,又叫做靜態工廠方法(static factory method)模式。他是由乙個工廠類決定建立出哪一種產品類的例項。
該模式的主要思想就是建立乙個具體的工廠類(該類裡包含了所有建立產品的例項的邏輯),使用者只需通過傳入型別而由他來決定建立那種產品的例項。
舉個例子,假如現在需要匯出一種標準型別檔案,他有html格式和pdf格式,(1)首先自然的做法便是定義乙個匯出檔案的介面,源**如下:
package com.studyart;
//檔案格式的介面,所有格式繼承此介面完成各格式的具體邏輯
public inte***ce exportfile
(2)然後通過繼承此介面,實現
html格式和pdf格式的具體邏輯。
package com.studyart;
public class exportfinancialhtmlfile implements exportfile
}
package com.studyart;
public class exportfinancialpdffile implements exportfile
}
(3)建立乙個工廠類,
根據呼叫者不同的要求,建立出不同的匯出物件並返回。而如果碰到不合法的要求,會返回乙個runtime異常。
package com.studyart;
//定義一工廠類,用於建立各種格式的物件
public class exportstanda***ctory else if(type.equals("pdf"))else
}}
(4)測試類
package com.studyart;
public class test else
}}
簡單工廠模式就是這樣了。
從中可以看出所有建立物件的邏輯都放在了工廠類中,而這也限定了此模式不能處理複雜的邏輯,因為所有的業務邏輯都在這個工廠類中實現,此為牽一髮而動全身啊。拿此例來說,現在匯出的標準型別檔案只有兩種,可以用此模式,但如果現在又需要匯出其他型別的檔案,如財政型別的,他又有兩種格式,也是html格式和pdf格式等,如果用簡單工廠模式的話,工廠類至少需要四個if()else(),若多的話更不方便,此時用此模式就不方便了,工廠模式便可以派上用場了(下文繼續更新)
Java設計模式之簡單工廠模式
設計模式之簡單工廠舉例 l 簡單工廠模式概述 又叫靜態工廠方法模式,它定義乙個具體的工廠類負責建立一些類的例項 l 優點 客戶端不需要在負責物件的建立,從而明確了各個類的職責 l 缺點 這個靜態工廠類負責所有物件的建立,如果有新的物件增加,或者某些物件的建立方式不同,就需要不斷的修改工廠類,不利於後...
java設計模式之簡單工廠模式
簡單工廠模式是類的建模式,又叫做靜態工廠方法 static factory method 模式。簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的例項。看到這句話相信大家就能理解一點了,就是一些相似的類,通過乙個工廠類給提取出來,這樣再用的時候,可以通過傳入不同的引數,就能獲取相應的類的例項。舉乙...
java設計模式之簡單工廠模式
簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的例項,然後去呼叫不同的型別的方法的一種設計模式。通常用在多個不同型別的呼叫者,返回相同型別的結果的場景下。如根據不同的人返回不同的許可權等。如本例通過coder geek hacker三種不同的人訪問工廠來返回不同的結果。首先建立介面類,提供所有示...