灵魂-放水

为学日益,为道日损。

BlogJava 首页 新随笔 联系 聚合 管理
  296 Posts :: 10 Stories :: 274 Comments :: 0 Trackbacks

设计模式之单态模式
author: 李艳庆
date: 2005年11月4日

单态模式Singleton, 目的是保在调用期间, 一个类只有一个实例存在.
最典型的例子为数据库连接, 数据库连接只需要一个, 所以可以使用单态模式.
使用单态模式时, 创建数据库连接的方法, 只能为静态, 并且要保证方法的同步, 否则在多线程操作中, 有可能会创建多个实例.
示例代码如下:

using System;
using System.Data.OleDb;
using System.Runtime.Remoting.Contexts;

[Synchronization()]
public class ConnectionClass
{
 private static OleDbConnection instance = null;
 private static string constring = "Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=singleton.mdb;Mode=Share Deny None;Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False";

 public static OleDbConnection GetInstance()
 {
  if (instance == null)
  {
   Console.WriteLine("Create new connection");
   instance = new OleDbConnection(constring);
  }
  return instance;
 }
}
public class Client
{
 public static void Main()
 {
  OleDbConnection cn = ConnectionClass.GetInstance();
  cn.Open();
  cn = ConnectionClass.GetInstance();
  cn.Close();
 }
}

posted on 2007-01-11 14:48 放水老倌 阅读(544) 评论(2)  编辑  收藏 所属分类: .NET

Feedback

# re: [转]设计模式之单态模式- -[未登录] 2008-02-26 10:05 fungway
使用单态模式对数据库操作的性能有影响么,单态的好处体现在哪里?  回复  更多评论
  

# re: [转]设计模式之单态模式- - 2008-02-27 15:46 放水老倌
对数据库本身的操作没什么影响,但是对开发的系统来说的影响可见一斑。  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: