您好,登錄后才能下訂單哦!
今天小編給大家分享一下Java簡單工廠模式怎么實現的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
軟件設計模式,我們又稱之為設計模式。既然是模式,那么它就是按照一定規律指定的。也正是如此,設計模式就是一套被反復使用、大多數人都知道的、經過整理分類的、前人代碼設計理念和經驗的總結。它存在的目的,就是為了提高代碼的可重用性、可讀性以及可靠性。
縱觀人類歷史,工廠從最開始的自產自銷的模式,到后來的農耕社會的小作坊模式,再接著工業改革后的流水線模式,到現在的形成現代化產業鏈模式。同樣的道理,我們的項目代碼也是從簡單到繁雜,逐步迭代而來的。對于調用者而言,卻是越來越來簡單。就像是我們不用考慮工廠是怎么生產東西的,我們只需要購買即可。
按照實際業務場景,我們可以把工廠模式劃分為三種不同的實現方式:簡單工廠模式、工廠方法模式以及抽象工廠模式。
在這里,我們把被創建的對象稱之為“產品”,把創建產品的對象稱之為"工廠"。如果創建的產品很少,只需要一個工廠類就可以完成,那么我們就把這種模式稱之為簡單工廠模式。
優點
工廠類必須要包含邏輯判斷,用來決定在什么時間創建哪個產品的實例。客戶端就不用承擔直接創建產品對象的責任,可以方便快捷地創建出相應的產品。
客戶端不需要知道創建具體產品的類名,只要知道相關參數即可。
可以通過引入配置文件,在不修改客戶端代碼的前提下對具體產品類進行更換或者添加。
缺點
簡單工廠模式工廠類比較單一,承擔了所有產品的職責。一旦出現異常,那么整個系統將會受到影響。且工廠類代碼會十分的臃腫,違背了高聚合原則。
使用簡單工廠模式引入新的工廠類,會增加系統的復雜度和理解難度。
系統擴展的難度較高,添加新產品就不得不修改邏輯。在產品過多的時候,會造成邏輯過于復雜的問題。
簡單工廠模式使用的是static工廠方法,那么會造成工廠角色無法形成基于繼承的等級結構。
應用場景:簡單工廠模式適用于產品種類較少的情況下。
簡單工廠模式的主要角色劃分:
簡單工廠(SimpleFactory):是該設計模式的核心,主要負責實現創建所有實例的內部邏輯。
抽象產品(Product):是簡單工廠創建的所有對象的父類,主要負責描述所有實例的公共接口。
具體產品(ConcreteProduct):是該設計模式的創建目標,
代碼實現:
public class Client {
public static void main(String[] args) {
}
//抽象產品
public interface Product {
void show();
}
//具體產品:ProductA
static class ConcreteProduct1 implements Product {
public void show() {
System.out.println("具體產品1顯示...");
}
}
//具體產品:ProductB
static class ConcreteProduct2 implements Product {
public void show() {
System.out.println("具體產品2顯示...");
}
}
final class Const {
static final int PRODUCT_A = 0;
static final int PRODUCT_B = 1;
static final int PRODUCT_C = 2;
}
static class SimpleFactory {
public static Product makeProduct(int kind) {
switch (kind) {
case Const.PRODUCT_A:
return new ConcreteProduct1();
case Const.PRODUCT_B:
return new ConcreteProduct2();
}
return null;
}
}
}
以上就是“Java簡單工廠模式怎么實現”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。