我有一個頂級類,讓我們說學校。面向對象的工廠方法vs構造函數
還有一些延伸學校課程的課程。
通常情況下,如果我只好打電話給孩子的一個類,我會用:
new Math('aaa')
,或者new English(array('foo'))
;
每個孩子的班級都有不同的參數。現在
,什麼是更好的:
1)在學校類創建工廠方法,所以:
School::Factory('aaa')
將返回基於給定參數Math('aaa')
類工廠()方法
2)或者直接調用每個孩子類?
編輯:我只有兩個子類,我的問題是我不知道這樣做是否值得生產代碼中的一點簡單。我只需檢查傳遞給Factory方法的參數,並根據這些信息調用這兩個類中的一個。你怎麼看?
一方面我可以寫出更簡單的代碼。另一方面,每次我需要添加新的子類時(儘管這樣做的可能性很小),但我還需要更改Factory()方法,所以我在此有一個依賴關係。
我不認爲一般建議可以在這個問題上,你總是需要考慮你的組件的具體結構。 – Niko 2013-02-26 13:58:35
已編輯,現在就去查看 – khernik 2013-02-26 14:00:23
什麼是負號?一個更好的設計決策的機會值得問這個問題:P – khernik 2013-02-26 14:18:48