私はビジターパターンに関する質問がありますが、現在2つのアセンブリがあります。私の最初のアセンブリはいくつかのインタフェースを含んでいます。訪問者パターン、キャストする必要性を削除
public interface INode
{
void Visit(INodeVisitor visitor);
}
public interface INodeVisitor
{
void VisitContainer(IContainer container);
}
public interface IContainer : INode
{
}
そして、私の第2組立
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クラスにキャストする必要性を回避されて、私は直接コンテナを参照したいです。コンテナを使用するためにインタフェースINodeVisitorインタフェースを変更することはできません。何か案は?私はちょうどキャストすべきですか?
乾杯
ロハン