Ich habe eine Frage bezüglich des Besuchermusters. Ich habe derzeit zwei Baugruppen. Meine erste Baugruppe enthält mehrere Schnittstellen.
public interface INode
{
void Visit(INodeVisitor visitor);
}
public interface INodeVisitor
{
void VisitContainer(IContainer container);
}
public interface IContainer : INode
{
}
Und meine zweite Baugruppe
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);
}
}
Was ich tun möchte, ist die Notwendigkeit zu vermeiden, in der ContainerVisitor-Klasse zu casten, ich möchte den Container direkt verweisen. Ich kann die Schnittstelle INodeVisitor nicht ändern, um Container zu verwenden. Hat jemand eine Idee? Sollte ich einfach casten?
Prost
Rohan