工廠模式Patch V1 01

2022-05-06 18:15:12 字數 649 閱讀 6707

出去吃頓飯的功夫就發現了兩個問題。

第乙個:

新建例項的時候直接用c.newinstance()會不會導致程式在c不存在的時候出錯?

測試了一下,如果c不存在的話,場景類裡會報錯,那看來還是可以直接這麼用,不需要class.forname()。

這段**會報錯:

product twothreethree = factory.createproduct(product233.class

);twothreethree.printname();

另乙個:

我一開始回憶著敲**的時候把生產方法設成了靜態函式,但是後來想到要new工廠的例項,就把static關鍵字刪掉了。

但是剛才出門之後發現,我完全可以不用例項化工廠類啊。

這樣的話,方法頭加乙個關鍵字,要用的時候只要

product one = productfactory.createproduct(product1.class);

就可以了。

第三個:

生產方法的引數其實不一定是class,是字串或者是enum型別都可以,enum還更好用一點。

在方法內用引數獲取相應的類就行了。

先用空值初始化要返回的物件,如果找不到那個類就返回null就可以了。

簡單工廠模式,工廠模式,抽象工廠模式

三種模式看了一天,記錄下自己的理解 headfirst,比薩店為例 1,簡單工廠模式 乙個具體的工廠類 pizzafactory 乙個抽象的產品類pizza,可以派生出多個具體的產品類 客戶 pizzastore類 工廠類 pizzafactory類關聯產品類pizza,工廠生產出不同型別的pizz...

簡單工廠模式 工廠模式 抽象工廠模式

簡單工廠模式 簡單工廠模式的最大優點在於工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態例項化相關類,對於客戶端來說,去除了與具體產品的依賴。但增加功能時,需增加 case 邏輯判斷分支條件,修改了原有的類,我們不但對擴充套件開發了,對修改也開放了,違背了開放 封閉原則。工廠方法模式,定義了乙...

簡單工廠模式 工廠模式 抽象工廠模式

其實這個三個c 的設計模式已經學習很長時間了,今晚才想起來要寫這三個設計模式,為什麼要用c 中的設計模式呢?for example,你已經會開車了,正著開,倒著開,轉彎,這些都是開車基本的,但是你並沒有很高的車技,並不會炫酷。漂移,就好像c 中的設計模式一樣,在你學好c 的基礎上,嫻熟的應用出的新技...