我最近询问了循环依赖。答案是专门开发一个关于接口的项目(MyProject.Abstractions
)。现在,这个项目是另一个循环依赖的原因,具有访问者模式。
namespace MyProject.Abstractions
{
public interface ICharacter { }
public interface ICharacterVisitor
{
// References MyProject.Characters
void Visit(Warrior warrior);
void Visit(Wizard wizard);
}
}
namespace MyProject.Characters
{
// References MyProject.Abstractions
public abstract class CharacterBase : ICharacter { }
public class Warrior : CharacterBase { }
public class Wizard : CharacterBase { }
}
这是否意味着我的 ICharacterVisitor 应该在我的MyProject.Characters
项目中?我将整个解决方案用作我的 SOLID 培训练习。