考虑以下域概念:
InputHandler(伪)中的一些可能的使用场景:
someAttackInstance.ApplyEffect(someInputDerivedData)
鉴于我不希望 Attacks 有不同的实现,是否建议:
更新
以下是一些更多信息:
假设我想使用依赖注入,并在构造函数中传递依赖项。要实例化一个Attack实例,是否建议使用我的InputHandler类中的Abstract Factory IAttackFactory以及具有IAttackEffectFactory依赖关系来构建攻击效果的IAttackFactory?
假设InputHandler为root:
var bullet = attackFactory.CreateAttack(ctrlWasPressed);
bullet.Color = mouseButtonPressed == MouseButton.Right ? Color.blue : Color.Red;
在BulletAttackFactory中:
ctor(IAttackEffectFactory fac){this.fac = fac;}
IAttack CreateAttack(bool ctrlPressed)
{
IAttackEffect eff = this.fac.CreateEffect();
IAttack att = new Attack(eff);
}
BulletEffectFactory中的:
IAttackEffect CreateEffect(bool ctrlPressed)
{
if(ctrlPressed)
return new HighCaliberEffect();
return LowCaliberEffect();
}