代碼段簡單學習設計模式 -- 簡單工廠模式

簡單工廠模式是類的創建模式,又叫做靜態工廠方法(Static Factory Method)模式。簡單工廠模式是由一個工廠對象決定創建出哪一種產品類的實例。

1.源代碼

public interface Say {
    //登錄驗證
    public boolean saySomething();
}
public class ChineseSay implements Say {

    @Override
    public void saySomething() {
       sysout("你好,我是好人")
    }

}
public class EnglishSay implements Say {

    @Override
    public boolean saySomething() {
        sysout("hello , i  am a good man")
    }

}

我們還需要一個工廠類SayManager,根據調用者不同的要求,創建出不同的對象并返回。而如果碰到不合法的要求,會返回一個Runtime異常。

public class SayManager {
    public static Say factory(String type){
        if(type.equals("chinese")){
            
            return new ChineseSay();
            
        }else if(type.equals("english")){
            
            return new EnglishSay();
            
        }else{
            /**
             * 這里拋出一個自定義異常會更恰當
             */
            throw new RuntimeException("沒有找到登錄類型");
        }
    }
}

測試類

public class Test {
    public static void main(String[] args) {
        String type = "chinese";
        Say say = SayManager.factory(type);
       say.saySomething();
    }
}

2. 優點

模式的核心是工廠類。這個類含有必要的邏輯判斷,可以決定在什么時候創建哪一個類的實例,而調用者則可以免除直接創建對象的責任。簡單工廠模式通過這種做法實現了對責任的分割,當系統引入新的說話方式(本例中)的時候無需修改調用者。

3. 缺點

這個工廠類集中了所以的創建邏輯,當有復雜的多層次等級結構時,所有的業務邏輯都在這個工廠類中實現。什么時候它不能工作了,整個系統都會受到影響。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 設計模式匯總 一、基礎知識 1. 設計模式概述 定義:設計模式(Design Pattern)是一套被反復使用、多...
    MinoyJet閱讀 3,970評論 1 15
  • 一個UML類圖 類之間的關系 類的繼承結構表現在UML中為:泛化(generalize)與實現(realize) ...
    僚機KK閱讀 668評論 0 0
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,759評論 18 399
  • 1.接口基礎回顧 設計模式六大原則,其中依賴倒轉原則,強調我們應該面向接口編程,那什么是接口?接口的作用? 接口如...
    孟婆湯不解渴閱讀 862評論 0 3
  • 設計模式基本原則 開放-封閉原則(OCP),是說軟件實體(類、模塊、函數等等)應該可以拓展,但是不可修改。開-閉原...
    西山薄涼閱讀 3,856評論 3 14