设计模式之—访问者模式
访问者模式:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变个元素的类的前提下定义作用于这些元素的新操作。
适用于数据结构相对稳定的系统,如下示例的男人和女人。男人和女人是固定的
示例的UML图如下:
状态抽象类(Action)
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace VisitorPattern.CLASS { //状态类 abstract class Action { public abstract void GetManReflect(Man man); //获取男人的反映 public abstract void GetWomanReflect(Woman woman); //获取女人的反映 } }
成功状态(Success)继承于状态抽象类(Action)
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace VisitorPattern.CLASS { //成功状态 class Success : Action { public override void GetManReflect(Man man) { Console.WriteLine("{0},{1}时,背后多半有个伟大的女人。",man.GetType().Name,this.GetType().Name); } public override void GetWomanReflect(Woman woman) { Console.WriteLine("{0},{1}时,背后大多有一个不成功的男人。", woman.GetType().Name, this.GetType().Name); } } }