介绍$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
示例$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
用同样的构建过程创建Sql和Xml的Insert()方法和Get()方法。$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
MessageModel$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
using System;$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
using System.Collections.Generic;$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
using System.Text;$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
namespace Pattern.Builder$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
{$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
   
/// <summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
   
/// Message实体类$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
   
/// </summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
    public class MessageModel$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
   
{$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// <summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// 构造函数$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// </summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// <param name="msg">Message内容</param>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// <param name="pt">Message发布时间</param>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
        public MessageModel(string msg, DateTime pt)$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
{$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
           
this._message = msg;$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
           
this._publishTime = pt;$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
        }
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
private string _message;$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// <summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// Message内容$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// </summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
        public string Message$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
{$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
           
get { return _message; }$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
           
set { _message = value; }$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
        }
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
private DateTime _publishTime;$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// <summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// Message发布时间$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// </summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
        public DateTime PublishTime$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
{$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
           
get { return _publishTime; }$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
           
set { _publishTime = value; }$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
        }
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
    }
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
}
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
SqlMessage$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
using System;$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
using System.Collections.Generic;$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
using System.Text;$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
namespace Pattern.Builder$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
{$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
   
/// <summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
   
/// Sql方式操作Message$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
   
/// </summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
    public class SqlMessage$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
   
{$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// <summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// 获取Message$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// </summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// <returns></returns>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
        public List<MessageModel> Get()$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
{$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
            List
<MessageModel> l = new List<MessageModel>();$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
            l.Add(
new MessageModel("SQL方式获取Message", DateTime.Now));$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
           
return l;$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
        }
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// <summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// 插入Message$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// </summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// <param name="mm">Message实体对象</param>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// <returns></returns>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
        public bool Insert(MessageModel mm)$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
{$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
           
// 代码略$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
           
return true;$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
        }
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
    }
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
}
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
XmlMessage$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
using System;$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
using System.Collections.Generic;$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
using System.Text;$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
namespace Pattern.Builder$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
{$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
   
/// <summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
   
/// Xml方式操作Message$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
   
/// </summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
    public class XmlMessage$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
   
{$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// <summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// 获取Message$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// </summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// <returns></returns>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
        public List<MessageModel> Get()$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
{$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
            List
<MessageModel> l = new List<MessageModel>();$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
            l.Add(
new MessageModel("XML方式获取Message", DateTime.Now));$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
           
return l;$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
        }
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// <summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// 插入Message$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// </summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// <param name="mm">Message实体对象</param>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// <returns></returns>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
        public bool Insert(MessageModel mm)$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
{$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
           
// 代码略$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
           
return true;$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
        }
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
    }
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
}
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
Operation$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
using System;$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
using System.Collections.Generic;$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
using System.Text;$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
using System.Reflection;$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
namespace Pattern.Builder$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
{$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
   
/// <summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
   
/// 操作(Product)$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
   
/// </summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
    public class Operation$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
   
{$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
private string _type;$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
private Dictionary<string, string> _dictionary;$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// <summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// 构造函数$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// </summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// <param name="type">产品类型</param>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
        public Operation(string type)$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
{$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
            _dictionary
= new Dictionary<string, string>();$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
           
this._type = type;$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
        }
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// <summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// 索引器$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// </summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// <param name="key"></param>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// <returns></returns>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
        public string this[string key]$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
{$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
           
get { return _dictionary[key]; }$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
           
set { _dictionary[key] = value; }$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
        }
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// <summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// 获得结果$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// </summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// <returns></returns>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
        public string GetResult()$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
{$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
            Assembly assembly
= Assembly.Load("Pattern.Builder");$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
            MethodInfo methodGet
= assembly.GetType("Pattern.Builder." + _dictionary["get"].Split('|')[0]).GetMethod(_dictionary["get"].Split('|')[1]);$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
           
object objGet = methodGet.Invoke(assembly.CreateInstance("Pattern.Builder." + _dictionary["get"].Split('|')[0]), null);$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
            List
<MessageModel> m = (List<MessageModel>)objGet;$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
            $©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
            MethodInfo methodInsert
= assembly.GetType("Pattern.Builder." + _dictionary["insert"].Split('|')[0]).GetMethod(_dictionary["insert"].Split('|')[1]);$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
           
object objInsert = methodInsert.Invoke(assembly.CreateInstance("Pattern.Builder." + _dictionary["insert"].Split('|')[0]), new object[] { new MessageModel(_dictionary["insert"].Split('|')[2], Convert.ToDateTime(_dictionary["insert"].Split('|')[3])) });$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
           
bool b = (bool)objInsert;$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
           
return
"类型为" + this._type + "的执行结果:<br />" + b.ToString() + "<br />" + m[0].Message + " " + m[0].PublishTime.ToString() + "<br />";$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
        }
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
    }
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
}
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
AbstractMessageBuilder$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
using System;$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
using System.Collections.Generic;$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
using System.Text;$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
namespace Pattern.Builder$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
{$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
   
/// <summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
   
/// 抽象Message建造者(Builder)$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
   
/// </summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
    public abstract class AbstractMessageBuilder$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
   
{$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// <summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// 构造函数$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// </summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// <param name="type">产品类型</param>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
        public AbstractMessageBuilder(string type)$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
{$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
           
this._operation = new Operation(type);$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
        }
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// <summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// 操作(Product)$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// </summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
        protected Operation _operation;$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// <summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// 操作(Product)$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// </summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
        public Operation Operation$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
{$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
           
get { return _operation; }$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
           
set { _operation = value; }$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
        }
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// <summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// 建造插入方法$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// </summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// <param name="mm"></param>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
        abstract public void BuilderInsert(MessageModel mm);$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// <summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// 建造获取方法$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// </summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
        abstract public void BuilderGet();$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
    }
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
}
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
SqlMessageBuilder$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
using System;$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
using System.Collections.Generic;$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
using System.Text;$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
namespace Pattern.Builder$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
{$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
   
/// <summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
   
/// SqlMessage建造者(ConcreteBuilder)$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
   
/// </summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
    public class SqlMessageBuilder : AbstractMessageBuilder$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
   
{$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// <summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// 构造函数$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// </summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
        public SqlMessageBuilder()$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
            :
base("sql")$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
{$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
        }
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// <summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// 建造Sql插入方法$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// </summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// <param name="mm">Message实体对象</param>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
        public override void BuilderInsert(MessageModel mm)$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
{$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
           
base._operation["insert"] = "SqlMessage|Insert|" + mm.Message + "|" + mm.PublishTime.ToString() + "";$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
        }
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// <summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// 建造Sql获取方法$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// </summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
        public override void BuilderGet()$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
{$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
           
base._operation["get"] = "SqlMessage|Get";$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
        }
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
    }
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
}
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
XmlMessageBuilder$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
using System;$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
using System.Collections.Generic;$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
using System.Text;$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
namespace Pattern.Builder$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
{$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
   
/// <summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
   
/// XmlMessage建造者(ConcreteBuilder)$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
   
/// </summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
    public class XmlMessageBuilder : AbstractMessageBuilder$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
   
{$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// <summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// 构造函数$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// </summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
        public XmlMessageBuilder()$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
            :
base("xml")$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
{$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
        }
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// <summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// 建造Xml插入方法$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// </summary>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
/// <param name="mm">Message实体对象</param>$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
        public override
void BuilderInsert(MessageModel mm)$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
       
{$©=Çø‘ŠÇwww.netcsharp.cn5ÍÙëÜ\êOòf
           
base._operation["insert"] = "XmlMessage|Insert|