我想创建类汽车,车辆的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