我有一个关于访客模式的问题,我目前有两个程序集。我的第一个程序集包含几个接口。
public interface INode
{
void Visit(INodeVisitor visitor);
}
public interface INodeVisitor
{
void VisitContainer(IContainer container);
}
public interface IContainer : INode
{
}
我的第二次集会
class Program
{
static void Main(string[] args)
{
ContainerVisitor visitor = new ContainerVisitor();
visitor.VisitContainer(new Container());
}
}
public class ContainerVisitor : INodeVisitor
{
public void VisitContainer(IContainer value)
{
Container container = value as Container;
// Do some stuff...
}
}
public class Container : IContainer
{
public void Visit(INodeVisitor visitor)
{
visitor.VisitContainer(this);
}
}
我想要做的是避免需要在 ContainerVisitor 类中进行转换,我想直接引用 Container。我无法将接口 INodeVisitor 接口更改为使用 Container。有任何想法吗?我应该投吗?
干杯
罗汉