我正在尝试使用抽象工厂(如http://www.dofactory.com/Patterns/PatternAbstract.aspx)设计一个良好的实体创建系统,但在处理实例特定参数时遇到了困难。
例如: 我有两个抽象工厂,一个用于创建弹丸,另一个用于创建箱子。
现在,工厂可以是每种类型的一个实例,从列表中传递一个抽象参数集(在基类中为共享材料、大小等),类型特定参数将是弹丸的速度和箱子的耐久性。
但我遇到的问题是,在最后当我调用这个抽象工厂方法并以字符串“BulletProjectile”和“WeakCrate”作为参数时,我需要提供实例特定参数,更重要的是它们对于不同的工厂是不同类型的——对于弹丸它们将具有位置和速度,而对于箱子则只有位置。 更糟糕的情况是当用户或玩家创建箱子或类似物体,并能够定义其尺寸时,我该如何处理呢?
例如: 我有两个抽象工厂,一个用于创建弹丸,另一个用于创建箱子。
现在,工厂可以是每种类型的一个实例,从列表中传递一个抽象参数集(在基类中为共享材料、大小等),类型特定参数将是弹丸的速度和箱子的耐久性。
但我遇到的问题是,在最后当我调用这个抽象工厂方法并以字符串“BulletProjectile”和“WeakCrate”作为参数时,我需要提供实例特定参数,更重要的是它们对于不同的工厂是不同类型的——对于弹丸它们将具有位置和速度,而对于箱子则只有位置。 更糟糕的情况是当用户或玩家创建箱子或类似物体,并能够定义其尺寸时,我该如何处理呢?