表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。

 


乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)


作者:​​webabcd​



介绍

表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。



示例

有一个Message实体类,某些对象对它的操作有Insert()和Get()方法,现在要针对其中某一方法进行操作。

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql



MessageModel

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using System;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using System.Collections.Generic;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using System.Text;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02namespace Pattern.Visitor

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_07乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_08乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11    /**//// <summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12    /// Message实体类

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13    /// </summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12    public class MessageModel

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11    乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        /**//// <summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// 构造函数

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// </summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// <param name="msg">Message内容</param>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        /// <param name="pt">Message发布时间</param>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        public MessageModel(string msg, DateTime pt)

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12            this._message = msg;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12            this._publishTime = pt;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        }

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        private string _message;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        /**//// <summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// Message内容

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        /// </summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        public string Message

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11            get 乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{ return _message; }

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11            set 乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{ _message = value; }

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        }

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        private DateTime _publishTime;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        /**//// <summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// Message发布时间

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        /// </summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        public DateTime PublishTime

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11            get 乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{ return _publishTime; }

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11            set 乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{ _publishTime = value; }

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        }

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13    }

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_66}

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02

AbstractElement

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using System;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using System.Collections.Generic;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using System.Text;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02namespace Pattern.Visitor

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_07乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_08乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11    /**//// <summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12    /// 抽象元素(Element)

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13    /// </summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12    public abstract class AbstractElement

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11    乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        /**//// <summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// 执行抽象访问者的Visit()方法(从而执行抽象元素的方法)

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// </summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// <param name="abstractVisitor">抽象访问者</param>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        /// <returns></returns>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        public abstract string Accept(AbstractVisitor abstractVisitor);

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13    }

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_66}

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02

Message

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using System;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using System.Collections.Generic;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using System.Text;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02namespace Pattern.Visitor

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_07乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_08乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11    /**//// <summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12    /// 操作Message抽象类(Element)

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13    /// </summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12    public abstract class Message : AbstractElement

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11    乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        private MessageModel _messageModel;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        /**//// <summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// 构造函数

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// </summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        /// <param name="mm">Message实体对象</param>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        public Message(MessageModel mm)

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12            this._messageModel = mm;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        }

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        /**//// <summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// Message实体对象

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        /// </summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        public MessageModel MessageModel

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11            get 乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{ return _messageModel; }

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11            set 乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{ _messageModel = value; }

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        }

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        /**//// <summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// 执行抽象访问者的Visit()方法(从而执行抽象元素的方法)

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// </summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// <param name="abstractVisitor">抽象访问者</param>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        /// <returns></returns>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        public override string Accept(AbstractVisitor abstractVisitor)

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12            return abstractVisitor.Visit(this);

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        }

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        /**//// <summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// 获取Message

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// </summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        /// <returns></returns>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        public abstract List<MessageModel> Get();

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        /**//// <summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// 插入Message

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// </summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        /// <returns></returns>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        public abstract bool Insert();

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13    }

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_66}

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02

SqlMessage

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using System;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using System.Collections.Generic;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using System.Text;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02namespace Pattern.Visitor

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_07乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_08乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11    /**//// <summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12    /// Sql方式操作Message(ConcreteElement)

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13    /// </summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12    public class SqlMessage : Message

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11    乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        /**//// <summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// 构造函数

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// </summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        /// <param name="mm">Message实体对象</param>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        public SqlMessage(MessageModel mm)

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12            : base(mm)

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12            

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        }

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        /**//// <summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// 获取Message

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// </summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        /// <returns></returns>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        public override List<MessageModel> Get()

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12            List<MessageModel> l = new List<MessageModel>();

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12            l.Add(new MessageModel("SQL方式获取Message", DateTime.Now));

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12            return l;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        }

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        /**//// <summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// 插入Message

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// </summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        /// <returns></returns>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        public override bool Insert()

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12            // 代码略

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12            return true;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        }

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13    }

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_66}

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02

XmlMessage

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using System;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using System.Collections.Generic;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using System.Text;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02namespace Pattern.Visitor

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_07乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_08乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11    /**//// <summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12    /// Xml方式操作Message(ConcreteElement)

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13    /// </summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12    public class XmlMessage : Message

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11    乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        /**//// <summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// 构造函数

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// </summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        /// <param name="mm">Message实体对象</param>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        public XmlMessage(MessageModel mm)

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12            : base(mm)

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12 

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        }

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        /**//// <summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// 获取Message

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// </summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        /// <returns></returns>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        public override List<MessageModel> Get()

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12            List<MessageModel> l = new List<MessageModel>();

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12            l.Add(new MessageModel("XML方式获取Message", DateTime.Now));

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12            return l;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        }

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        /**//// <summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// 插入Message

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// </summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        /// <returns></returns>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        public override bool Insert()

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12            // 代码略

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12            return true;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        }

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13    }

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_66}

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02

AbstractVisitor

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using System;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using System.Collections.Generic;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using System.Text;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02namespace Pattern.Visitor

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_07乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_08乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11    /**//// <summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12    /// 抽象访问者(Visitor)

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13    /// </summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12    public abstract class AbstractVisitor

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11    乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        /**//// <summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// 执行抽象元素的方法

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// </summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// <param name="abstractElement">抽象元素</param>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        /// <returns></returns>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        public abstract string Visit(AbstractElement abstractElement);

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13    }

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_66}

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02

InsertVisitor

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using System;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using System.Collections.Generic;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using System.Text;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02namespace Pattern.Visitor

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_07乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_08乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11    /**//// <summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12    /// Insert访问者(ConcreteVisitor)

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13    /// </summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12    public class InsertVisitor : AbstractVisitor

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11    乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        /**//// <summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// 执行Message的Insert()方法

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// </summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// <param name="abstractElement">抽象元素</param>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        /// <returns></returns>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        public override string Visit(AbstractElement abstractElement)

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12            Message m = abstractElement as Message;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12            return m.Insert().ToString() + "<br />";

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        }

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13    }

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_66}

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02

GetVisitor

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using System;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using System.Collections.Generic;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using System.Text;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02namespace Pattern.Visitor

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_07乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_08乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11    /**//// <summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12    /// Get访问者(ConcreteVisitor)

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13    /// </summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12    public class GetVisitor : AbstractVisitor

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11    乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        /**//// <summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// 执行Message的Get()方法

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// </summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// <param name="abstractElement">抽象元素</param>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        /// <returns></returns>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        public override string Visit(AbstractElement abstractElement)

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12            Message m = abstractElement as Message;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12            return m.Get()[0].Message + " " + m.Get()[0].PublishTime.ToString() + "<br />";

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        }

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13    }

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_66}

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02

Messages

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using System;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using System.Collections.Generic;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using System.Text;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02namespace Pattern.Visitor

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_07乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_08乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11    /**//// <summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12    /// Message集合(ObjectStructure)

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13    /// </summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12    public class Messages

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11    乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        private List<Message> _list = new List<Message>();

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        /**//// <summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// 添加一个Message对象

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// </summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        /// <param name="message">Message对象</param>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        public void Attach(Message message)

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12            _list.Add(message);

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        }

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        /**//// <summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// 移除一个Message对象

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// </summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        /// <param name="message">Message对象</param>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        public void Detach(Message message)

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12            _list.Remove(message);

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        }

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        /**//// <summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// 执行集合内所有Message对象的Accept()方法(执行抽象访问者的Visit()方法(从而执行抽象元素的方法))

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// </summary>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        /// <param name="abstractVisitor">抽象访问者</param>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        /// <returns></returns>

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        public string Accept(AbstractVisitor abstractVisitor)

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11        乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12            string s = "";

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12            foreach (Message m in _list)

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11            乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12                s += m.Accept(abstractVisitor);

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13            }

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12            return s;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13        }

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13    }

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_66}

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02


Test

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using System;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using System.Data;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using System.Configuration;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using System.Collections;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using System.Web;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using System.Web.Security;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using System.Web.UI;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using System.Web.UI.WebControls;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using System.Web.UI.WebControls.WebParts;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using System.Web.UI.HtmlControls;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02using Pattern.Visitor;

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02public partial class Visitor : System.Web.UI.Page

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_07乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_08乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12    protected void Page_Load(object sender, EventArgs e)

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_10乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_11    乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_09{

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        Pattern.Visitor.Messages m = new Pattern.Visitor.Messages();

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        m.Attach(new SqlMessage(new MessageModel("插入", DateTime.Now)));

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        m.Attach(new XmlMessage(new MessageModel("插入", DateTime.Now)));

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        Response.Write(m.Accept(new InsertVisitor()));

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_构造函数_12        Response.Write(m.Accept(new GetVisitor()));

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_xml_13    }

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_66}

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)_sql_02

运行结果

True

True

SQL方式获取Message 2007-5-27 15:01:53

XML方式获取Message 2007-5-27 15:01:53