Provide模式
来源:互联网 发布:成都行知小学对口中学 编辑:程序博客网 时间:2024/04/27 22:01
namespace ProviderDemo
{
// 定义保存购物车项目的约定
public abstract class CartProvider
{
public abstract void AddItem(int itemno);
}
}
namespace ProviderDemo
{
class DBCartProvider : CartProvider
{
public override void AddItem(int itemno)
{
// 保存到数据库中
// 取得数据库连接串
// sql 命令
// 执行 sql 命令
Console.WriteLine("DB Cart Provider: {0}", itemno);
}
}
}
namespace ProviderDemo
{
class FileCartProvider : CartProvider
{
// 子类中完成具体的实现
public override void AddItem(int itemno)
{
string filename = "cart.txt";
// 使用追加模式打开文件
System.IO.StreamWriter sw = new System.IO.StreamWriter(filename, true);
sw.WriteLine(itemno);
sw.Close();
}
namespace ProviderDemo
{
public class MyCartProvider
{
//静态构造函数不用修辞符,它只创建一次.
// 在静态构造函数中根据配置文件实例对象
static MyCartProvider()
{
// 读取实现类
string className = System.Configuration.ConfigurationManager.AppSettings["CartProvider"];
// 通过反射取得当前的程序集
System.Reflection.Assembly assembly = System.Reflection.Assembly.GetCallingAssembly();
// 通过类型创建对象实例
object o = assembly.CreateInstance(className);
// 此对象应该派生自 CartProvider
cp = o as CartProvider;
}
// 具体现实的引用
static CartProvider cp;
// 静态的方法必须使用静态的数据成员
public static void AddItem(int itemno)
{
cp.AddItem(itemno);
}
}
}
<configuration>
<appSettings>
<!-- 在配置文件中定义具体的实现类 -->
<add key="CartProvider" value="ProviderDemo.FileCartProvider"/>
</appSettings>
</configuration>
}
}
- Provide模式
- convent provide
- we provide IT support
- rp-provide-from-last
- Content Provide详解
- Android-Content Provide
- abap中 provide 的使用
- Android基础 : Android Content Provide
- Provide an uncaught exception handler
- ANDROID content provide 使用实例
- $provide里的provider方法
- Provide Regular Time to Focus
- Content provide & content resolver comments
- Angular中的$provide(自定义服务)
- angular $provide factory constant value
- A site provide JavaScript Graphics Library
- Effective C#之5:Always Provide ToString()
- 通过credential provide获得权限启动程序
- 分布式计算 集群 联系与区别
- 使用Hibernate进行简单分页
- 对一个项目管理读书笔记的建议
- 初学心得:Java连接SQL Server 2000
- 从HTML中攫取你所需的信息
- Provide模式
- C/C++笔试系列--经典C++笔试题解析1
- WCF基于用户名和密码安全成功测试
- 为ext外部组件添加事件监听,不当的方法会导致内存泄漏
- Delphi问题堆叠
- 正则表达式基础知识
- 怎么实现图片的滚动
- 分页
- 驴子的希望