基本上每个实体都会有一组它会遵循的进食行为。由于某种原因,我想出的模型感觉不对。我认为最令人不安的部分是使用单例是有意义的。
有没有更好的办法?
public bool IsEntityEdible(Entity target)
{
foreach (var feedingBehavior in FeedingBehaviors)
{
if (feedingBehavior.WouldEat(target))
{
return true;
}
}
return false;
}
public abstract class FeedingBehavior
{
public abstract bool WouldEat(Entity entity);
}
public sealed class Myrmecophagy : FeedingBehavior
{
public readonly static Myrmecophagy Instance = new Myrmecophagy();
private Myrmecophagy() { }
public override bool WouldEat(Entity entity)
{
return entity is Ant || entity is Termite;
}
}