設(shè)計(jì)模式:工廠方法模式
什么是工廠方法模式?
工廠方法模式(英語:Factory Method Pattern)的實(shí)質(zhì)是“定義一個創(chuàng)建對象的接口,但讓實(shí)現(xiàn)這個接口的類來決定實(shí)例化哪個類。工廠方法讓類的實(shí)例化推遲到子類中進(jìn)行”。

一句話歸納
只對結(jié)果負(fù)責(zé),封裝過程對象。

代碼示例
我在Car類中定義了車的一些基本屬性和行為,在其子類BMW類和Benz類里寫各自的屬性和行為的區(qū)別;定義了一個關(guān)于Car類的工廠接口,在其實(shí)現(xiàn)類里的方法返回不同的車型,以后我再賣一個新車系列時候,只需要創(chuàng)建一個Car的子類和相對應(yīng)的工廠類即可。

適用性
以下場景我建議你考慮使用:
面向接口編程;
創(chuàng)建對象需要大量重復(fù)的代碼或默認(rèn)值;
創(chuàng)建對象的生命周期必須集中管理,比如Spring的BeanFactory;
創(chuàng)建對象可能是在一個池子里,不是每次都創(chuàng)建新的,比如線程池、連接池;
客戶端(應(yīng)用層)不依賴于產(chǎn)品類實(shí)例如何被創(chuàng)建、實(shí)現(xiàn)等細(xì)節(jié);
一個類通過其子類來指定創(chuàng)建哪個對象。

局限性
以下場景我建議你謹(jǐn)慎使用:
重構(gòu)現(xiàn)有的類時會破壞現(xiàn)有的代碼,畢竟以前是用構(gòu)造器,現(xiàn)在用工廠方法;
簡單對象創(chuàng)建不建議使用,避免把簡單問題復(fù)雜化;
工廠方法所實(shí)例化的類具有私有的構(gòu)造方法,所以這些類就不能擴(kuò)展了;
確實(shí)擴(kuò)展了工廠方法所實(shí)例化的類,子類必須具有所有工廠方法的一套實(shí)現(xiàn)。

寫在最后
最后,好兄弟,記得點(diǎn)贊,關(guān)注,謝謝。
