J'ai une question concernant le modèle de visiteur, j'ai actuellement deux assemblées. Mon premier assemblage contient plusieurs interfaces.Modèle de visiteur, enlever le besoin de lancer
public interface INode
{
void Visit(INodeVisitor visitor);
}
public interface INodeVisitor
{
void VisitContainer(IContainer container);
}
public interface IContainer : INode
{
}
Et mon deuxième Assemblée
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);
}
}
Ce que je veux faire est d'éviter la nécessité de jeter dans la classe ContainerVisitor, je veux faire référence directement le conteneur. Je ne peux pas changer l'interface de l'interface INodeVisitor pour utiliser Container. Des idées? Devrais-je jeter?
Vive
Rohan