乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)

[索引页]
[源码下载]


乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)


作者:webabcd


介绍
给定一个语言, 定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。


示例
有一个Message实体类,某个类对它的操作有Get()方法。现在要求用具有某一规则的中文语法来执行这个操作。
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)
 
MessageModel
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using System; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using System.Collections.Generic; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using System.Text; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)namespace Pattern.Interpreter 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        /// <summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        /// Message实体类 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        /// </summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        public class MessageModel 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        { 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// <summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// 构造函数 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// </summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// <param name="msg">Message内容</param> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// <param name="pt">Message发布时间</param> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                public MessageModel(string msg, DateTime pt) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                { 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        this._message = msg; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        this._publishTime = pt; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                } 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                private string _message; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// <summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// Message内容 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// </summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                public string Message 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                { 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        get { return _message; } 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        set { _message = value; } 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                } 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                private DateTime _publishTime; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// <summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// Message发布时间 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// </summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                public DateTime PublishTime 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                { 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        get { return _publishTime; } 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        set { _publishTime = value; } 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                } 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        } 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)}
 
SqlMessage
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using System; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using System.Collections.Generic; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using System.Text; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)namespace Pattern.Interpreter 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        /// <summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        /// Sql方式操作Message 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        /// </summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        public class SqlMessage 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        { 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// <summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// 获取Message 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// </summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// <returns></returns> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                public static List<MessageModel> Get() 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                { 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        List<MessageModel> l = new List<MessageModel>(); 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        l.Add(new MessageModel("SQL方式获取Message", DateTime.Now)); 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        return l; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                } 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        } 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)}
 
Context
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using System; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using System.Collections.Generic; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using System.Text; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)namespace Pattern.Interpreter 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        /// <summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        /// Context 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        /// </summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        public class Context 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        { 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                private string _input; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                private string _output; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// <summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// 构造函数 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// </summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// <param name="input">输入内容</param> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                public Context(string input) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                { 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        this._input = input; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                } 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// <summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// 输入内容 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// </summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                public string Input 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                { 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        get { return _input; } 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        set { _input = value; } 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                } 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// <summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// 输出内容 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// </summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                public string Output 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                { 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        get { return _output; } 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        set { _output = value; } 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                } 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        } 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)}
 
AbstractExpression
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using System; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using System.Collections.Generic; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using System.Text; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)namespace Pattern.Interpreter 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        /// <summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        /// 抽象公式(AbstractExpression) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        /// </summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        public abstract class AbstractExpression 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        { 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// <summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// 解释Context的方法 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// </summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// <param name="context">context</param> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                public void Interpret(Context context) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                { 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        if (String.IsNullOrEmpty(context.Input)) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        { 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                                return
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        } 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        context.Output += GetCSharp(context.Input); 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                } 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// <summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// 获得输入内容所对应的C#代码 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// </summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// <param name="source">source</param> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// <returns></returns> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                private string GetCSharp(string source) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                { 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        string csharp = ""; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        string word = ""; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        // 从输入内容中取得要解释的词 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        word = GetWord(source); 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        // 从字典中找到word所对应的C#代码 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        GetDictionary().TryGetValue(word, out csharp); 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        return csharp; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                } 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// <summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// 从输入内容中取得要解释的词 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// </summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// <param name="source">source</param> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// <returns></returns> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                public abstract string GetWord(string source); 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// <summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// 获取字典 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// </summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// <returns></returns> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                public abstract Dictionary<stringstring> GetDictionary(); 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        } 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)}
 
DatabaseExpression
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using System; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using System.Collections.Generic; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using System.Text; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using System.Text.RegularExpressions; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)namespace Pattern.Interpreter 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        /// <summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        /// 终端公式(TerminalExpression)分析与数据库相关的 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        /// </summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        public class DatabaseExpression : AbstractExpression 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        { 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// <summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// 从输入内容中取得要解释的词 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// </summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// <param name="source">source</param> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// <returns></returns> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                public override string GetWord(string source) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                { 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        MatchCollection mc; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        Regex r = new Regex(@"\{(.*)\}"); 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        mc = r.Matches(source); 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        return mc[0].Groups[1].Value; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                } 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// <summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// 获取与数据库相关的字典 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// </summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// <returns></returns> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                public override Dictionary<stringstring> GetDictionary() 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                { 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        Dictionary<stringstring> d = new Dictionary<stringstring>(); 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        d.Add("数据库""Sql"); 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        return d; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                } 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        } 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)}
 
ObjectExpression
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using System; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using System.Collections.Generic; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using System.Text; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using System.Text.RegularExpressions; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)namespace Pattern.Interpreter 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        /// <summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        /// 终端公式(TerminalExpression)分析与对象相关的 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        /// </summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        public class ObjectExpression : AbstractExpression 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        { 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// <summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// 从输入内容中取得要解释的词 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// </summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// <param name="source">source</param> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// <returns></returns> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                public override string GetWord(string source) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                { 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        MatchCollection mc; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        Regex r = new Regex(@"\[(.*)\]"); 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        mc = r.Matches(source); 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        return mc[0].Groups[1].Value; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                } 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// <summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// 获取与对象相关的字典 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// </summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// <returns></returns> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                public override Dictionary<stringstring> GetDictionary() 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                { 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        Dictionary<stringstring> d = new Dictionary<stringstring>(); 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        d.Add("信息""Message"); 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        return d; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                } 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        } 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)}
 
MethodExpression
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using System; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using System.Collections.Generic; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using System.Text; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using System.Text.RegularExpressions; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)namespace Pattern.Interpreter 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        /// <summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        /// 终端公式(TerminalExpression)分析与方法相关的 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        /// </summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        public class MethodExpression : AbstractExpression 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        { 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// <summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// 从输入内容中取得要解释的词 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// </summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// <param name="source">source</param> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// <returns></returns> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                public override string GetWord(string source) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                { 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        MatchCollection mc; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        Regex r = new Regex(@"\((.*)\)"); 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        mc = r.Matches(source); 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        return mc[0].Groups[1].Value; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                } 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// <summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// 获取与方法相关的字典 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// </summary> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                /// <returns></returns> 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                public override Dictionary<stringstring> GetDictionary() 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                { 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        Dictionary<stringstring> d = new Dictionary<stringstring>(); 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        d.Add("获取"".Get()"); 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        return d; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                } 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        } 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)}
 
client
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using System; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using System.Data; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using System.Configuration; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using System.Collections; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using System.Web; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using System.Web.Security; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using System.Web.UI; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using System.Web.UI.WebControls; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using System.Web.UI.WebControls.WebParts; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using System.Web.UI.HtmlControls; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using Microsoft.CSharp; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using System.Reflection; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using System.Text; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using System.Collections.Generic; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)using Pattern.Interpreter; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)public partial class Interpreter : System.Web.UI.Page 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        protected void Page_Load(object sender, EventArgs e) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        { 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                string chinese = "{数据库}[信息](获取)"
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                Context context = new Context(chinese); 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                List<AbstractExpression> l = new List<AbstractExpression>(); 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                l.Add(new DatabaseExpression()); 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                l.Add(new ObjectExpression()); 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                l.Add(new MethodExpression()); 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                foreach (AbstractExpression exp in l) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                { 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                        exp.Interpret(context); 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                } 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                Assembly assembly = Assembly.Load("Pattern.Interpreter"); 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                MethodInfo method = assembly.GetType("Pattern.Interpreter." + context.Output.Split('.')[0]).GetMethod(context.Output.Split('.')[1].Replace("()", "")); 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                object obj = method.Invoke(nullnull); 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                List<MessageModel> m = (List<MessageModel>)obj; 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern) 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                Response.Write("中文语法:" + chinese); 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                Response.Write("<br />"); 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                Response.Write("解释后的C#代码:" + context.Output); 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                Response.Write("<br />"); 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)                Response.Write("执行结果:" + m[0].Message + " " + m[0].PublishTime.ToString()); 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)        } 
乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)}
 
 
运行结果
中文语法:{数据库}[信息](获取)
解释后的C#代码:SqlMessage.Get()
执行结果:SQL方式获取Message 2007-5-1 8:48:07 


参考
http://www.dofactory.com/Patterns/PatternInterpreter.aspx


OK
[源码下载]
 


     本文转自webabcd 51CTO博客,原文链接:http://blog.51cto.com/webabcd/344555,如需转载请自行联系原作者


上一篇:设计模式|从Visitor Pattern说到Pattern Matching


下一篇:[FtpSearchV2][构架设计][第二篇]系统构架及分析