設計模式遊戲完美開發 工廠模式

2021-09-24 13:49:41 字數 1008 閱讀 2206

一、最簡單的工廠模式 其一

factory抽象類:內有乙個create抽象方法,子類factorya:實現create方法生成a產品,子類factoryb:實現create方法生成b產品

二、最簡單的工廠模式 其二

factory抽象類:內有create(int type)抽象方法,子類factorychild:實現create(int type)方法根據傳入的type來對應生成不同的產品。

三、以泛型類形式實現的工廠模式(稍微難那麼一丟丟,不過也不難哈)

偽**如下:

class factorywhere t : produce   //可使用where來進行約束t,如此處是約束t是必須要繼承自produce類的

void create() 

外部用法是直接    factory  f = new factory();    producea  pa =  f.create();

四、以泛型方法形式實現的工廠模式

偽**:

class factory  //這裡的t也可以進行約束的哦~ 

外部用法是直接 factory f = new factory();   producea pa = f.create(); 

上面的**如果有拼寫錯誤請無視,看懂就好蛤~

最好的個人認為最好的是第一種,為什麼?第二種工廠是通過if來區分不同產品生產的,所以乙個工廠類會不斷變大,進而難以維護,第三種工廠和第四種工廠都不利於多人開發,因為泛型就算約束的再好,一旦產品類群組超級多的時,就很難確定應該要將t填寫成什麼類才是正確的,當然你說「我可以全搜一下,看看是不是這個型別可以用這個泛型工廠建立,不就知道了嗎?」,如果真的每次建立物件的時候都要這樣看一看,你覺得會比起第一種或第二種方式好嗎?當然小型專案是察覺不出這種坑爹的問題的,當專案變大了,可能就很難受了。

但是第一種工廠會導致工廠類過多問題(俗稱:類**),這時候可能就要用到抽象工廠來進行減少類的重複性,其實抽象工廠是很少用到的,它其實就是在工廠模式上的封裝。後期會更新解釋抽象工廠,當然解釋的也不是很全面因為我從來沒用過啊。。

設計模式與遊戲完美開發 抽象工廠

它就是工廠模式的公升級版,可見上圖 它與工廠模式的區別就是抽象化了,而工廠模式的工廠是具體的,例如 將上面的深圳工廠拆出來,我不需要其他城市的工廠了 例如都倒閉啦 哈哈 就變成工廠模式了。而且這種工廠模式正是我介紹的工廠模式第二種形式的實現方法的小改動一下,原本是乙個介面 建立產品 外部還需要摻入乙...

設計模式遊戲完美開發 外觀模式

外觀模式在gof的解釋是 為子系統定義一組統一的介面,這個高階的介面會讓子系統更容易被使用 以汽車為例,汽車內部有各種各樣的子系統,但是開車的人不需要理解這些,只需要知道怎麼用方向盤 踏板 儀錶盤來進行操控,方向盤 踏板 儀錶盤就是所謂的高階介面,隔離了複雜的子系統。假設乙個專案有5個子系統,每個系...

遊戲程式的設計模式 工廠模式

最近打算翻譯一些外國的文章,既長見識,有練習了英語,真是一石二鳥,一舉兩得,一箭雙鵰。下面就是第一篇 動機 我在一些技術 訪談中發現,很多公司在尋找擁有 strong cs fundamental 的職員。我並不是很明白這樣做的具體含義,但是我知道他們會問什麼樣的問題 經常它會是 寫乙個快速排序的函...