您的位置:首页 > 编程语言 > C#

乐在其中设计模式(C#) - 提供者模式(Provider Pattern)

2007-01-22 08:26 671 查看
[索引页]

[源码下载]

乐在其中设计模式(C#) - 提供者模式(Provider Pattern)

作者:webabcd

介绍

为一个API进行定义和实现的分离。

示例

有一个Message实体类,对它的操作有Insert()和Get()方法,持久化数据在SqlServer数据库中或Xml文件里。根据配置文件中的配置来决定数据持久化方案是使用SqlServer数据库还是Xml文件。

using System;

namespace Pattern.Provider

MessageProvider

using System.Configuration.Provider;

using System.Collections.Generic;

namespace Pattern.Provider

SqlMessageProvider

using System;

using System.Collections.Specialized;

using System.Collections.Generic;

using System.Configuration.Provider;

using System.Configuration;

namespace Pattern.Provider

XmlMessageProvider

using System;

using System.Collections.Specialized;

using System.Collections.Generic;

using System.Configuration.Provider;

using System.Configuration;

namespace Pattern.Provider

MessageProviderCollection

using System.Configuration.Provider;

using System;

namespace Pattern.Provider

MessageProviderConfigurationSection

using System.Configuration;

namespace Pattern.Provider

Message

using System;

using System.Collections.Generic;

using System.Configuration;

using System.Web.Configuration;

namespace Pattern.Provider

Web.config

<?xml version="1.0" encoding="utf-8"?>

<configuration>

<configSections>

<section name="MessageProvider" type="Pattern.Provider.MessageProviderConfigurationSection, Pattern.Provider" />

</configSections>

<MessageProvider defaultProvider="SqlMessageProvider">

<providers>

<add name="XmlMessageProvider" type="Pattern.Provider.XmlMessageProvider, Pattern.Provider" connectionStringName="XmlConnection" />

<add name="SqlMessageProvider" type="Pattern.Provider.SqlMessageProvider, Pattern.Provider" connectionStringName="SqlConnection" />

</providers>

</MessageProvider>

<connectionStrings>

<add name="SqlConnection" connectionString="server=.;database=db;uid=sa;pwd=sa" />

<add name="XmlConnection" connectionString="XmlPath" />

</connectionStrings>

</configuration>

Test

using System;

using System.Data;

using System.Configuration;

using System.Collections;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

using Pattern.Provider;

public partial class Provider : System.Web.UI.Page

{

{

Response.Write(Message.Insert(new MessageModel("插入", DateTime.Now)));

Response.Write("<br />");

Response.Write(Message.Get()[0].Message + " " + Message.Get()[0].PublishTime.ToString());

}

}

运行结果

True

SQL方式,连接字符串是server=.;database=db;uid=sa;pwd=sa 2007-1-22 8:21:44

OK

[源码下载]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: