1. 程式人生 > >工廠方法模式——研磨設計模式——跟著cc學設計系列

工廠方法模式——研磨設計模式——跟著cc學設計系列

認識工廠方法模式 1:工廠方法模式的功能 工廠方法的主要功能是讓父類在不知道具體實現的情況下,完成自身的功能呼叫,而具體的實現延遲到子類來實現。 2:實現成抽象類 工廠方法的實現中,通常父類會是一個抽象類,裡面包含建立所需物件的抽象方法,這些抽象方法就是工廠方法 3:實現成具體的類 也可以把父類實現成為一個具體的類,這種情況下,通常是在父類中提供獲取所需物件的預設實現方法,這樣就算沒有具體的子類,也能夠執行 。 4:工廠方法的引數和返回值 工廠方法的實現中,可能需要引數,以便決定到底選用哪一種具體的實現。 一般工廠方法返回的是被建立物件的介面物件,當然也可以是抽象類或者一個具體的類的例項。 5:誰來使用工廠方法建立的物件 (1)在工廠方法模式裡面,應該是Creator中的其它方法在使用工廠方法建立的物件 (2)客戶端應該是使用Creator物件,或者是使用由Creator創建出來的物件,這個時候工廠方法建立的物件,是Creator中的某些方法使用。 (3)在某些情況下,客戶端可能會使用由Creator創建出來的物件,這個時候工廠方法建立的物件,是構成客戶端需要的物件的一部分。 小結一下:在工廠方法模式裡面,客戶端要麼使用Creator物件,要麼使用Creator建立的物件,一般客戶端不直接使用工廠方法。當然也可以直接把工廠方法暴露給客戶端操作,但是一般不這麼做。   工廠方法模式的呼叫順序示意圖 先看看客戶端使用由Creator創建出來的物件情況的呼叫順序示意圖      接下來看看客戶端使用Creator物件時候的呼叫順序示意圖