靈魂-放水

          為學(xué)日益,為道日損。

          BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
            296 Posts :: 10 Stories :: 274 Comments :: 0 Trackbacks

          設(shè)計(jì)模式之單態(tài)模式
          author: 李艷慶
          date: 2005年11月4日

          單態(tài)模式Singleton, 目的是保在調(diào)用期間, 一個(gè)類(lèi)只有一個(gè)實(shí)例存在.
          最典型的例子為數(shù)據(jù)庫(kù)連接, 數(shù)據(jù)庫(kù)連接只需要一個(gè), 所以可以使用單態(tài)模式.
          使用單態(tài)模式時(shí), 創(chuàng)建數(shù)據(jù)庫(kù)連接的方法, 只能為靜態(tài), 并且要保證方法的同步, 否則在多線程操作中, 有可能會(huì)創(chuàng)建多個(gè)實(shí)例.
          示例代碼如下:

          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 放水老倌 閱讀(558) 評(píng)論(2)  編輯  收藏 所屬分類(lèi): .NET

          Feedback

          # re: [轉(zhuǎn)]設(shè)計(jì)模式之單態(tài)模式- -[未登錄](méi) 2008-02-26 10:05 fungway
          使用單態(tài)模式對(duì)數(shù)據(jù)庫(kù)操作的性能有影響么,單態(tài)的好處體現(xiàn)在哪里?  回復(fù)  更多評(píng)論
            

          # re: [轉(zhuǎn)]設(shè)計(jì)模式之單態(tài)模式- - 2008-02-27 15:46 放水老倌
          對(duì)數(shù)據(jù)庫(kù)本身的操作沒(méi)什么影響,但是對(duì)開(kāi)發(fā)的系統(tǒng)來(lái)說(shuō)的影響可見(jiàn)一斑。  回復(fù)  更多評(píng)論
            

          主站蜘蛛池模板: 贡嘎县| 新巴尔虎左旗| 荥阳市| 黎城县| 醴陵市| 康平县| 家居| 石景山区| 伊宁县| 建阳市| 开远市| 台山市| 肥城市| 阿巴嘎旗| 安仁县| 灵寿县| 通海县| 桃江县| 刚察县| 新干县| 基隆市| 拜泉县| 叙永县| 深水埗区| 霞浦县| 南昌县| 眉山市| 玉屏| 游戏| 太白县| 嘉义市| 嵩明县| 延长县| 甘谷县| 泾源县| 耒阳市| 五原县| 英吉沙县| 德州市| 达尔| 德安县|