定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

 

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)


作者:​​webabcd​



介绍

定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。



示例

有一个Message实体类,对它的操作有Get()方法,每次Get()之前要使用ValidateUser()方法来检查当前用户是否有权限,获取数据可能在SqlServer数据库中或Xml文件里。(这里先检查用户的权限,再获取数据就是算法的骨架,获取数据延迟到子类中实现)

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据



MessageModel

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02using System;

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02using System.Collections.Generic;

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02using System.Text;

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02namespace Pattern.TemplateMethod

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_07乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_08乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_09{

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11    /**//// <summary>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12    /// Message实体类

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_13    /// </summary>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12    public class MessageModel

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11    乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_09{

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11        /**//// <summary>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        /// 构造函数

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        /// </summary>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        /// <param name="msg">Message内容</param>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_13        /// <param name="pt">Message发布时间</param>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        public MessageModel(string msg, DateTime pt)

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11        乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_09{

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12            this._message = msg;

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12            this._publishTime = pt;

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_13        }

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        private string _message;

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11        /**//// <summary>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        /// Message内容

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_13        /// </summary>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        public string Message

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11        乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_09{

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11            get 乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_09{ return _message; }

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11            set 乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_09{ _message = value; }

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_13        }

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        private DateTime _publishTime;

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11        /**//// <summary>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        /// Message发布时间

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_13        /// </summary>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        public DateTime PublishTime

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11        乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_09{

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11            get 乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_09{ return _publishTime; }

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11            set 乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_09{ _publishTime = value; }

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_13        }

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_13    }

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_66}

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02

AbstractMessageTemplate

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02using System;

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02using System.Collections.Generic;

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02using System.Text;

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02namespace Pattern.TemplateMethod

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_07乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_08乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_09{

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11    /**//// <summary>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12    /// 模板方法抽象类

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_13    /// </summary>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12    public abstract class AbstractMessageTemplate

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11    乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_09{

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11        /**//// <summary>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        /// UserId

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_13        /// </summary>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        protected string _userId;

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11        /**//// <summary>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        /// 构造函数

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        /// </summary>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_13        /// <param name="userId">UserId</param>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        public AbstractMessageTemplate(string userId)

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11        乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_09{

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12            this._userId = userId;

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_13        }

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12       

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11        /**//// <summary>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        /// 验证用户是否合法

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        /// </summary>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_13        /// <returns></returns>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        public virtual bool ValidateUser()

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11        乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_09{

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12            if (this._userId == "admin")

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11            乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_09{

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12                return true;

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_13            }

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12            else

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11            乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_09{

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12                return false;

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_13            }

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_13        }

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11        /**//// <summary>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        /// 获取MessageModel列表

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        /// </summary>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_13        /// <returns></returns>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        public abstract List<MessageModel> Get();

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11        /**//// <summary>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        /// 模板方法:先验证用户是否合法,再获取MessageModel列表

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        /// </summary>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_13        /// <returns></returns>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        public List<MessageModel> TemplateMethodGet()

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11        乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_09{

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12            if (ValidateUser())

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11            乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_09{

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12                return Get();

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_13            }

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12            else

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11            乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_09{

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12                List<MessageModel> l = new List<MessageModel>();

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12                l.Add(new MessageModel("无权获取", DateTime.Now));

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12                return l;

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_13            }

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_13        }

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_13    }

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_66}

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02

SqlMessage

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02using System;

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02using System.Collections.Generic;

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02using System.Text;

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02namespace Pattern.TemplateMethod

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_07乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_08乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_09{

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11    /**//// <summary>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12    /// Sql方式操作Message

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_13    /// </summary>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12    public class SqlMessage : AbstractMessageTemplate

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11    乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_09{

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11        /**//// <summary>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        /// 构造函数

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        /// </summary>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_13        /// <param name="userId">UserId</param>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        public SqlMessage(string userId)

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12            : base(userId)

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11        乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_09

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_13        }

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11        /**//// <summary>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        /// 获取Message

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        /// </summary>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_13        /// <returns></returns>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        public override List<MessageModel> Get()

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11        乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_09{

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12            List<MessageModel> l = new List<MessageModel>();

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12            l.Add(new MessageModel("SQL方式获取Message", DateTime.Now));

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12            return l;

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_13        }

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_13    }

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_66}

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02

XmlMessage

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02using System;

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02using System.Collections.Generic;

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02using System.Text;

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02namespace Pattern.TemplateMethod

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_07乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_08乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_09{

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11    /**//// <summary>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12    /// Xml方式操作Message

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_13    /// </summary>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12    public class XmlMessage : AbstractMessageTemplate

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11    乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_09{

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11        /**//// <summary>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        /// 构造函数

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        /// </summary>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_13        /// <param name="userId">UserId</param>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        public XmlMessage(string userId)

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12            : base(userId)

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11        乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_09{

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_13        }

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11        /**//// <summary>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        /// 获取Message

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        /// </summary>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_13        /// <returns></returns>

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        public override List<MessageModel> Get()

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11        乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_09{

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12            List<MessageModel> l = new List<MessageModel>();

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12            l.Add(new MessageModel("XML方式获取Message", DateTime.Now));

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12            return l;

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_13        }

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_13    }

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_66}

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02


client

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02using System;

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02using System.Data;

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02using System.Configuration;

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02using System.Collections;

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02using System.Web;

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02using System.Web.Security;

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02using System.Web.UI;

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02using System.Web.UI.WebControls;

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02using System.Web.UI.WebControls.WebParts;

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02using System.Web.UI.HtmlControls;

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02using Pattern.TemplateMethod;

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02public partial class TemplateMethod : System.Web.UI.Page

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_07乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_08乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_09{

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12    protected void Page_Load(object sender, EventArgs e)

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_10乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_11    乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_获取数据_09{

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        AbstractMessageTemplate m = new XmlMessage("user");

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        Response.Write(m.TemplateMethodGet()[0].Message + " " + m.TemplateMethodGet()[0].PublishTime.ToString());

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        Response.Write("<br />");

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        m = new SqlMessage("admin");

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        Response.Write(m.TemplateMethodGet()[0].Message + " " + m.TemplateMethodGet()[0].PublishTime.ToString());

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_12        Response.Write("<br />");

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_sql_13    }

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_xml_66}

乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)_子类_02

运行结果

无权获取 2007-3-13 22:29:55

SQL方式获取Message 2007-3-13 22:29:55