介绍
为一个API进行定义和实现的分离。
示例
有一个Message实体类,对它的 *** 作有Insert()和Get()方法,持久化数据在sqlServer数据库中或Xml文件里。根据配置文件中的配置来决定数据持久化方案是使用sqlServer数据库还是Xml文件。
MessageModel
using@H_403_25@ System;
@H_403_25@ namespace@H_403_25@ Pattern.ProvIDer
@H_403_25@ {
@H_403_25@///@H_403_25@ @H_403_25@<summary>@H_403_25@
@H_403_25@///@H_403_25@ Message实体类
@H_403_25@///@H_403_25@ @H_403_25@</summary>@H_403_25@@H_403_25@
@H_403_25@public@H_403_25@ @H_403_25@class@H_403_25@ MessageModel
@H_403_25@{
@H_403_25@///@H_403_25@ @H_403_25@<summary>@H_403_25@
@H_403_25@///@H_403_25@ 构造函数
@H_403_25@///@H_403_25@ @H_403_25@</summary>@H_403_25@
@H_403_25@///@H_403_25@ @H_403_25@<param name="msg">@H_403_25@Message内容@H_403_25@</param>@H_403_25@
@H_403_25@///@H_403_25@ @H_403_25@<param name="pt">@H_403_25@Message发布时间@H_403_25@</param>@H_403_25@@H_403_25@
@H_403_25@public@H_403_25@ MessageModel(@H_403_25@string@H_403_25@ msg, DateTime pt)
@H_403_25@@H_419_182@{
@H_403_25@this@H_403_25@._message @H_403_25@=@H_403_25@ msg;
@H_403_25@this@H_403_25@._publishTime @H_403_25@=@H_403_25@ pt;
}@H_403_25@@H_403_25@
@H_403_25@private@H_403_25@ @H_403_25@string@H_403_25@ _message;
@H_403_25@///@H_403_25@ @H_403_25@<summary>@H_403_25@
@H_403_25@///@H_403_25@ Message内容
@H_403_25@///@H_403_25@ @H_403_25@</summary>@H_403_25@@H_403_25@
@H_403_25@public@H_403_25@ @H_403_25@string@H_403_25@ Message
@H_403_25@{
@H_403_25@get@H_403_25@ @H_403_25@{ @H_403_25@return@H_403_25@ _message; }@H_403_25@@H_403_25@
@H_403_25@set@H_403_25@ @H_403_25@{ _message @H_403_25@=@H_403_25@ value; }@H_403_25@@H_403_25@
}@H_403_25@@H_403_25@
@H_403_25@private@H_403_25@ DateTime _publishTime;
@H_403_25@///@H_403_25@ @H_403_25@<summary>@H_403_25@
@H_403_25@///@H_403_25@ Message发布时间
@H_403_25@///@H_403_25@ @H_403_25@</summary>@H_403_25@@H_403_25@
@H_403_25@public@H_403_25@ DateTime PublishTime
@H_403_25@{
@H_403_25@get@H_403_25@ @H_403_25@{ @H_403_25@return@H_403_25@ _publishTime; }@H_403_25@@H_403_25@
@H_403_25@set@H_403_25@ @H_403_25@{ _publishTime @H_403_25@=@H_403_25@ value; }@H_403_25@@H_403_25@
}@H_403_25@@H_403_25@
}@H_403_25@@H_403_25@
}@H_403_25@@H_403_25@
@H_403_25@
MessageProvIDer
using@H_403_25@ System.Configuration.ProvIDer;
@H_403_25@ using@H_403_25@ System.Collections.Generic;
@H_403_25@ namespace@H_403_25@ Pattern.ProvIDer
@H_403_25@ {
@H_403_25@///@H_403_25@ @H_403_25@<summary>@H_403_25@
@H_403_25@///@H_403_25@ *** 作Message抽象类
@H_403_25@///@H_403_25@ @H_403_25@</summary>@H_403_25@@H_403_25@
@H_403_25@public@H_403_25@ @H_403_25@abstract@H_403_25@ @H_403_25@class@H_403_25@ MessageProvIDer : ProvIDerBase
@H_403_25@{
@H_403_25@///@H_403_25@ @H_403_25@<summary>@H_403_25@
@H_403_25@///@H_403_25@ 插入Message
@H_403_25@///@H_403_25@ @H_403_25@</summary>@H_403_25@
@H_403_25@///@H_403_25@ @H_403_25@<param name="mm">@H_403_25@Message实体对象@H_403_25@</param>@H_403_25@
@H_403_25@///@H_403_25@ @H_403_25@<returns></returns>@H_403_25@@H_403_25@
@H_403_25@public@H_403_25@ @H_403_25@abstract@H_403_25@ @H_403_25@bool@H_403_25@ Insert(MessageModel mm);
@H_403_25@///@H_403_25@ @H_403_25@<summary>@H_403_25@
@H_403_25@///@H_403_25@ 获得Message
@H_403_25@///@H_403_25@ @H_403_25@</summary>@H_403_25@
@H_403_25@///@H_403_25@ @H_403_25@<returns></returns>@H_403_25@@H_403_25@
@H_403_25@public@H_403_25@ @H_403_25@abstract@H_403_25@ List@H_403_25@<@H_403_25@MessageModel@H_403_25@>@H_403_25@ Get();
}@H_403_25@@H_403_25@
}@H_403_25@@H_403_25@
@H_403_25@
sqlMessageProvIDer
using@H_403_25@ System;
@H_403_25@ using@H_403_25@ System.Collections.Specialized;
@H_403_25@ using@H_403_25@ System.Collections.Generic;
@H_403_25@ using@H_403_25@ System.Configuration.ProvIDer;
@H_403_25@ using@H_403_25@ System.Configuration;
@H_403_25@ namespace@H_403_25@ Pattern.ProvIDer
@H_403_25@ {
@H_403_25@///@H_403_25@ @H_403_25@<summary>@H_403_25@
@H_403_25@///@H_403_25@ sql方式 *** 作Message
@H_403_25@///@H_403_25@ @H_403_25@</summary>@H_403_25@@H_403_25@
@H_403_25@public@H_403_25@ @H_403_25@class@H_403_25@ sqlMessageProvIDer : MessageProvIDer
@H_403_25@{
@H_403_25@private@H_403_25@ @H_403_25@string@H_403_25@ _connectionString;
@H_403_25@///@H_403_25@ @H_403_25@<summary>@H_403_25@