访问者模式

using System;
class Program
{
static void Main(string[] args)
{
Person personA = new Person("andre", "20");
Person personB = new Person("jack", "21");
IVisitor visitor = new VisitPersonName();
personA.AccpetVisit(visitor);
visitor = new VisitPersonAge();
personB.AccpetVisit(visitor);
Console.ReadKey();
}

public class Element
{
public void AccpetVisit(IVisitor visitor)
{
visitor.Visit(this);
}
}

public class Person : Element
{
public string Name { get; set; }
public string Age { get; set; }
public Person(string name, string age)
{
Name = name;
Age = age;
}
}

public interface IVisitor
{
void Visit(Element element);
}

public class VisitPersonName : IVisitor
{
public void Visit(Element element)
{
Person person = element as Person;
Console.WriteLine(person.Name);
}
}

public class VisitPersonAge : IVisitor
{
public void Visit(Element element)
{
Person person = element as Person;
Console.WriteLine(person.Age);
}
}
}

posted @ 2019-03-04 14:47  东东东  阅读(84)  评论(0)    收藏  举报