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

时间:2022-09-08 14:12:27

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

[索引页][源码下载]

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

作者:webabcd





介绍

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





示例

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

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





MessageModel

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

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

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

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

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

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

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

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)    /// Message实体类

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)            get 乐在其中设计模式(C#) - 访问者模式(Visitor Pattern){ return _message; }

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)            set 乐在其中设计模式(C#) - 访问者模式(Visitor Pattern){ _message = value; }

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

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

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

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

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

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

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

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

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)            get 乐在其中设计模式(C#) - 访问者模式(Visitor Pattern){ return _publishTime; }

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)            set 乐在其中设计模式(C#) - 访问者模式(Visitor Pattern){ _publishTime = value; }

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

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

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

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

AbstractElement

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Message

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)            get 乐在其中设计模式(C#) - 访问者模式(Visitor Pattern){ return _messageModel; }

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)            set 乐在其中设计模式(C#) - 访问者模式(Visitor Pattern){ _messageModel = value; }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)        public abstract bool Insert();

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

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

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

SqlMessage

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

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

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

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

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

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

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

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

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

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)    public class SqlMessage : Message

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

XmlMessage

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

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

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

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

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

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

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

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

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

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)    public class XmlMessage : Message

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

AbstractVisitor

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

InsertVisitor

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

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

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

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

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

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

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

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

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

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)    public class InsertVisitor : AbstractVisitor

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

GetVisitor

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

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

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

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

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

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

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

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

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

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)    public class GetVisitor : AbstractVisitor

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

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

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

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

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

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

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

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

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

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

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)            ].PublishTime.ToString() + "<br />";

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

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

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

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

Messages

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

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

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

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

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

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

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

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)    /// Message集合(ObjectStructure)

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

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

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

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

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

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

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

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

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

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)        public void Attach(Message message)

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

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

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

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

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

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

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

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

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)        public void Detach(Message message)

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

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

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

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

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

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

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

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

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

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)        public string Accept(AbstractVisitor abstractVisitor)

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

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)            string s = "";

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)            foreach (Message m in _list)

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

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

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

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

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

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

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

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

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

Test

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

运行结果

True

True

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

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





参考

http://www.dofactory.com/Patterns/PatternVisitor.aspx





OK

[源码下载]

乐在其中设计模式(C#) - 访问者模式(Visitor Pattern)的更多相关文章

  1. 二十四种设计模式:访问者模式&lpar;Visitor Pattern&rpar;

    访问者模式(Visitor Pattern) 介绍表示一个作用于某对象结构中的各元素的操作.它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作. 示例有一个Message实体类,某些对象对 ...

  2. &lbrack;设计模式&rsqb; 23 访问者模式 visitor Pattern

    在GOF的<设计模式:可复用面向对象软件的基础>一书中对访问者模式是这样说的:表示一个作用于某对象结构中的各元素的操作.它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作.访问 ...

  3. 访问者模式&lpar;Visitor Pattern&rpar;——操作复杂对象结构

    模式概述 在软件开发中,可能会遇到操作复杂对象结构的场景,在该对象结构中存储了多个不同类型的对象信息,而且对同一对象结构中的元素的操作方式并不唯一,可能需要提供多种不同的处理方式,还有可能增加新的处理 ...

  4. 乐在其中设计模式&lpar;C&num;&rpar; - 提供者模式&lpar;Provider Pattern&rpar;

    原文:乐在其中设计模式(C#) - 提供者模式(Provider Pattern) [索引页][源码下载] 乐在其中设计模式(C#) - 提供者模式(Provider Pattern) 作者:weba ...

  5. 乐在其中设计模式&lpar;C&num;&rpar; - 策略模式&lpar;Strategy Pattern&rpar;

    原文:乐在其中设计模式(C#) - 策略模式(Strategy Pattern) [索引页][源码下载] 乐在其中设计模式(C#) - 策略模式(Strategy Pattern) 作者:webabc ...

  6. 乐在其中设计模式&lpar;C&num;&rpar; - 状态模式&lpar;State Pattern&rpar;

    原文:乐在其中设计模式(C#) - 状态模式(State Pattern) [索引页][源码下载] 乐在其中设计模式(C#) - 状态模式(State Pattern) 作者:webabcd 介绍 允 ...

  7. 乐在其中设计模式&lpar;C&num;&rpar; - 备忘录模式&lpar;Memento Pattern&rpar;

    原文:乐在其中设计模式(C#) - 备忘录模式(Memento Pattern) [索引页][源码下载] 乐在其中设计模式(C#) - 备忘录模式(Memento Pattern) 作者:webabc ...

  8. 乐在其中设计模式&lpar;C&num;&rpar; - 迭代器模式&lpar;Iterator Pattern&rpar;

    原文:乐在其中设计模式(C#) - 迭代器模式(Iterator Pattern) [索引页][源码下载] 乐在其中设计模式(C#) - 迭代器模式(Iterator Pattern) 作者:weba ...

  9. 乐在其中设计模式&lpar;C&num;&rpar; - 解释器模式&lpar;Interpreter Pattern&rpar;

    原文:乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) [索引页][源码下载] 乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 作 ...

随机推荐

  1. js 根据不同情况引入不同操作

    1.根据分辨率不同引入不同的JS // 根据不同的分辨率引入不同的JS代码 <script> if (screen.width == 1440 && screen.heig ...

  2. php笔试题(1)--转载

    一份不错的php面试题,附答案,有准备换工作的同学可以参考一下.一.基础题1. 写出如下程序的输出结果 <?php     $str1 = null;     $str2 = false;    ...

  3. leetcode:Remove Linked List Elements

    Remove all elements from a linked list of integers that have value val. ExampleGiven: 1 --> 2 --& ...

  4. IOS中用模型取代字典的好处

    使用字典的坏处 一般情况下,设置数据和取出数据都是用“字符串类型的key”,编写这些key时,编译器不会有任何友情提示,需要手敲 dict[@“name”]=@“Kevin”; NSString *n ...

  5. STM32F446 OTG&lowbar;FS&lowbar;DP&sol;DM调试

    之前项目用STM32F207,现在升级到用STM32F446处理器,用到USB的OTG_FS模式接法: 1.USB只连接了DP/DM 2.DP需上拉1.5K的电阻到3.3V 3.PA9(VBUS) 和 ...

  6. 第一节,windows和ubuntu下深度学习theano环境搭建

    先讲解windows下深度学习环境的搭建 步骤一  安装Anaconda Anaconda是一个用于科学计算的python发行版,支持linux,mac,windows系统,提供了包管理和环境管理的功 ...

  7. vim 语法着色完全配置

    原文地址:http://blog.sina.com.cn/s/blog_878940b3010156ku.html 在终端输入:sudo vim /etc/vim/vimrc   打开配置文件.编辑命 ...

  8. css完成下图

    <div></div> div{ height: 48px; width: 80px; padding: 0 16px 0 32px; background: rgba(0,0 ...

  9. java常用设计模式三:原型模式

    在说原型模式之前先说一下浅拷贝和深拷贝的概念 一.浅拷贝和深拷贝 1.浅拷贝 在java中,对象创建后需要有一个引用变量来指向该对象实际的地址空间,也就是说引用变量与对象实体是两个不同的数据体.在Ob ...

  10. Linux学习笔记-基本操作2

    1. 压缩包管理2. 进程管理3. 网路管理4. ftp服务器搭建5. nfs服务器搭建6. ssh服务器7. scp命令8. 其他命令9. 关机重启 1. 压缩包管理 1>. 屌丝版:不能对目 ...