設計模式之工廠方法模式

工廠方法

定義:
定義一個創建對象的接口,但讓實現這個接口的類來決定實例化哪個類,工廠方法讓類的實例化推遲到子類中進行
工廠:創建對象用的
方法:通過子類實現方法創建對象
類型:
創建型
·創建對象需要大量的重複代碼
·客戶端(應用層)不依賴於產品類實例如何被創建、實現等細節
·一個類通過其子類來指定創建那個對象

使用場景:
·創建對象需要大量代碼
·客戶端(應用層)不依賴於產品類實例如何被創建、實現等細節
優點:
用戶只需要關心所需產品對應的工廠,無需關心創建細節
加入新產品符合開閉原則,提高可擴展性
缺點:
類的個數容易過多,增加複雜度
增加了系統的抽象性和理解難度

UML圖

public class javaVideo extends Video {
    @Override
    public void produce() {
        System.out.println("錄製java課程視頻");
    }
}
public abstract class Video {

    public abstract void produce();

}

public abstract class VideoFactory {
    //只定義規範,契約,具體那種視頻有VideoFactory的子類來決定並且實現
    public abstract Video getVideo();
}
public class Test {
    public static void main(String[] args) {
        VideoFactory videoFactory =  new FEVideoFactory();
        Video video = videoFactory.getVideo();
        video.produce();
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章