工廠模式
工廠模式(Factory Pattern)是Java中最常用的設計模式之一。這種型別的設計模式屬於建立型模式,它提供了一種建立物件的最佳方式。
在工廠模式中,建立物件時不會對客戶端暴露建立邏輯,並且是通過使用一個共同的介面來指向新建立的物件。
工廠模式的思路:定義一個建立物件的介面,讓其子類自己決定例項化哪一個工廠類,工廠模式使其建立過程延遲到子類進行。使用過程中做好介面選擇。
優點:1、一個呼叫者向建立一個物件,只要知道名稱就可以了。2、擴充套件性高,如果想增加一個產品,只要擴充套件一個工廠類就可以。3、遮蔽產品的具體實現,呼叫者值關心產品的介面。
缺點:每次增加產品時,都需要增加一個具體類和物件實現工廠,使得系統中類的個數成倍增加,在一定程度上增加了系統的複雜度,同時也增加了系統具體類的依賴。這並不是什麼好事。
使用場景:1、日誌記錄器:記錄可能記錄到本地硬碟、系統事件、遠端伺服器等,使用者可以選擇記錄日誌到什麼地方。
作為一種建立類模式,在任何需要生成複雜物件的地方,都可以使用工廠方法模式。複雜物件適合工廠模式,而簡單物件,無需使用工廠模式。如果引入工廠模式,會增加系統的複雜度。
首先由一個工廠類的介面,然後是後邊會用到的具體類,這些具體類需要繼承這個介面,沒有構造方法,再建立一個工廠類用於獲取這些具體類的物件,這個工廠類的成員方法根據引數可以獲取對應具體類的物件。建立過程就足夠了,後期使用只需要哦建立工廠類的物件,就可以去建立具體類的物件了。