我想創建類汽車,車輛的init方法,以及飛機具有以下屬性:iPhone - 一個抽象類
- 汽車和飛機是車輛的兩個子類。
- 汽車和飛機都有一個initWithString方法。
- Car和Airplane的initWithString方法可接受的輸入字符串不重疊。
- 汽車是「幾乎抽象的」,因爲任何初始化的實例應該是汽車或飛機。
- 根據輸入的字符串,可以將一個字符串傳遞給Vehicle並獲取Car的實例,Airplane的實例或nil。
我應該更喜歡的任何特定設計模式?特別是對於Vehicle的initWithString和/或newVehicleWithString方法。
我認爲這很有用,注意在這種情況下,重寫alloc並返回一個特殊的singleton實例會分配和初始化正確的類並返回它,可能會更有效。 – 2010-03-30 01:13:12
的確如此,但這聽起來很像過早的優化。 – codewarrior 2010-03-30 01:17:05
似乎這些日子,每個人都必須把一切都變得極端。現在,當有一個非常明確和容易「優化」的機會時,人們不會考慮簡單的解決方案。在你的情況下,你正在創建並在100%的時間內扔掉物體。我們需要平衡,人們:)在這種情況下,無論如何它會更乾淨和更正確 - alloc也是創建類集羣的地方,而不是init。 – 2010-03-30 01:30:45