單例模式之文件緩存器

2012年4月18日? 天氣陰?? 天氣灰蒙蒙的,對于我們這種要為畢業做準備的人來說,這天氣舒服,涼爽?? 中午睡了一個時后? 打開電腦? 突然感覺? 眼睛不適應電腦屏幕的亮度,就是最近眼睛看電腦太久了?? 不工作 了?? 呵呵?? 看來該休息一下嘍????? 好久沒更新文章了??? 更新一個吧


單例模式

using System;

using System.Collections.Generic;
using System.Text;
using System.IO;

namespace 單例模式
{
??? //單例模式介紹
??? //一個類在一個程序中只有一個對象
??? //類似于程序的配置文件,一個程序中只能有一個配置文件,多個的話,程序 不知道在哪個文件去調
??? //應用?? 文件緩存管理器
??? class Program
??? {
??????? static void Main(string[] args)
??????? {
??????????? //Earth ea=new Earth();//不能創建對象
??????????? /*Earth ea1=Earth.getEarth();
??????????? Earth ea2=Earth.getEarth();
??????????? Console.WriteLine(object.ReferenceEquals(ea1,ea2));//看是否是同一個對象?? return true;
??????????? */

??????????? //應用? 文件緩存器
??????????? FileCacheManager fc = FileCacheManager.instanse;//因為instanse是filecachemanager唯一的對象 ,所以其他類都只存這個對象的值
??????????? string s=fc.ReadFile(@"c:\1.txt");
??????????? Console.WriteLine(s);
??????????? System.Threading.Thread.Sleep(8000);//為看到效果? 在睡的8秒中? 把文本文件?? 修改一下? 看能否得到正確結果
??????????? s = fc.ReadFile(@"c:\1.txt");
??????????? Console.WriteLine(s);
??????????? Console.ReadKey();
??????? }
??? }
??? class Earth
??? {
??????? //static的賦值語句運行一次(在類的第一次加載的時候)
??????? private static Earth instanse = new Earth();//2、聲明一個靜態字段,初始化一個實例(提供對象的唯一實例)
??????? private Earth()//1、把構造函數private(防止外部調用構造函數創建對象)
??????? {
??????? }
??????? public static Earth getEarth()//3、編寫一個靜態方法或者靜態屬性,返回那個唯一的實例
??????? {
??????????? return instanse;
??????? }
??????? public int population { get; set; }
??? }

??? sealed class FileCacheManager//新建一個文件緩存管理器類? 防止繼承?? 用sealed關鍵字
??? {
??????? public static readonly FileCacheManager instanse = new FileCacheManager();//設置一個只讀的變量? 存儲該對象 ?
??????? Dictionary<string, CacheItem> dic = new Dictionary<string, CacheItem>();//創建字典
??????? private FileCacheManager()
??????? {
??????? }
??????? public string ReadFile(string filename)
??????? {
??????????? if (dic.ContainsKey(filename))//判斷文件 是否已讀
??????????? {
??????????????? DateTime lasttime = File.GetLastWriteTime(filename);
??????????????? if (lasttime == dic[filename].lastwriteTime)//判斷文件 是否修改?? 根據最后修改時間
??????????????? {
??????????????????? return dic[filename].content;
??????????????? }
??????????????? else
??????????????????? return readtext(filename);
??????????? }
??????????? else
??????????? {
??????????????? return readtext(filename);
??????????? }
??????? }
??????? private string readtext(string filename)//讀取文件? 放到字典中
??????? {
??????????? string txt = File.ReadAllText(filename);
??????????? CacheItem ch = new CacheItem();
??????????? ch.content = txt;
??????????? ch.lastwriteTime = File.GetLastWriteTime(filename);//因為文件有可能被修改? 為了獲取的數據保持同步 所以保存他的最后修改時間? 再去判斷一下
??????????? dic[filename] = ch;//寫入字典
??????????? return txt;
??????? }
??? }
??? class CacheItem//用于保存緩存項
??? {
??????? public string content;
??????? public DateTime lastwriteTime;
??? }

}

轉載于:https://www.cnblogs.com/arno-zhang/archive/2012/04/18/5027557.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/260868.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/260868.shtml
英文地址,請注明出處:http://en.pswp.cn/news/260868.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux目錄詳解

轉自 http://www.cnblogs.com/Daniel-G/archive/2012/10/06/2712932.html詳解Linux目錄&#xff08;目錄樹詳細解釋&#xff09;給大家一篇關于Linux目錄 方面的詳細說明&#xff0c;好好讀一下&#xff01;Linux目錄詳解(RHEL5.4)linux有四種基本文件系統類型&#xff1a;--普…

Windows安裝cnpm報錯 The operation was rejected by your operating system.

Windows在安裝cnpm時出現如下錯誤 npm ERR! The operation was rejected by your operating system. npm ERR! Its possible that the file was already in use (by a text editor or antivirus), npm ERR! or that you lack permissions to access it. npm ERR! npm ERR! If y…

hao123電腦版主頁_hao123瀏覽器 原生網民的記憶 一代站長的傳奇

百度又有產品說再見了&#xff01;上線快8年的百度瀏覽器&#xff0c;再也不會更新了&#xff01;4月3日&#xff0c;百度瀏覽器官網發公告稱&#xff0c;“桌面百度、百度工具欄、百度地址欄、百度極速瀏覽器&#xff0c;hao123瀏覽器&#xff0c;產品將不再更新&#xff0c;基…

Client does not support authentication protocol requested by server;

今天把服務器的MYSQL從4升級到了5。用phpmyadmin連接時出現下面錯誤Client does not support authentication protocol requested by server; conside在網上發現解答&#xff1a;將mysql升級到5.x版本后&#xff0c;用客戶端登錄時出現了 Client does not support authenticati…

一些軟件設計的原則

以前本站向大家介紹過一些軟件開發的原則&#xff0c;比如優質代碼的十誡和Unix傳奇(下篇)中所以說的UNIX的設計原則。相信大家從中能夠從中學了解到一些設計原理方面的知識&#xff0c;正如我在《再談“我是怎么招聘程序”》中所說的&#xff0c;一個好的程序員通常由其操作技…

小米平板2刷remix_昆明小米售后維修點手機維修怎么收費?小米手機拆機換屏教程...

小編最近修了很多小米手機&#xff0c;大部分維修的故障基本都是手機碎屏&#xff0c;手機換電池之類的&#xff0c;小編從事小米手機維修十余年&#xff0c;小米手機整體機型性價比還是不錯的&#xff0c;所以市場上用的人還是比較多&#xff0c;尤其是在校學生&#xff0c;今…

第2章 Python 數字圖像處理(DIP) --數字圖像基礎2 - 圖像感知要素 - 圖像取樣和量化 - 空間分辨率和灰度分辨率

目錄圖像感知與獲取一個簡單的成像模型圖像取樣和量化空間分辨率和灰度分辨率圖像感知與獲取 一個簡單的成像模型 我們用形如 f(x,y)f(x,y)f(x,y) 的二維函數來表示圖像。在空間坐標 (x,y)處f(x, y)處 f(x,y)處f的值是一個標量&#xff0c;其物理意義由圖像源決定&#xff0c…

了解javascript中函數執行順序

我個人覺得一般人不會有這種寫法&#xff0c;但藝不壓身&#xff0c;呵呵。希望能幫到初學的朋友&#xff01;大家一起進步&#xff01; 首先列舉出8個例子&#xff0c;然后例子的解答會在文章末尾貼出&#xff01;測試代碼一&#xff1a; <script language"JavaScript…

外部資源獲取

處理外部資源是很繁瑣的事情&#xff0c;我們可能需要處理URL資源、File資源資源、ClassPath相關資源、服務器相關資源&#xff08;JBoss AS 5.x上的VFS資源&#xff09;等等很多資源。因此處理這些資源需要使用不同的接口&#xff0c;這就增加了我們系統的復雜性&#xff1b;而…

芯明天debug assertion failed_YJLV鋁芯電力電纜的基本介紹

原標題&#xff1a;YJLV鋁芯電力電纜的基本介紹YJLV鋁芯電力電纜&#xff0c;型號全稱&#xff1a;鋁芯交聯聚乙烯絕緣聚氯乙烯護套電力電纜。YJLV電纜的含義為&#xff1a;YJ----交聯聚乙烯絕緣;L----線芯材質為鋁材。V----聚氯乙烯護套。YJLV電纜工作溫度為導體額定工作溫度9…

1.1.1 從簡單的數據類型開始

/// <summary>/// C# 1.0 中定義的產品類型/// </summary>public class Product1{string name;public string Name { get { return name; } }decimal price;public decimal Price { get { return price; } }public Product1(string name, decimal price){this.name…

第2章 Python 數字圖像處理(DIP) --數字圖像基礎3 - 圖像內插 - 最近鄰內插 - 雙線性插值 - 雙三次內插 - 圖像放大

目錄圖像內插放大圖像圖像內插 內插通常在圖像放大、縮小、旋轉和幾何校正等任務中使用。內插并用它來調整圖像的大小&#xff08;縮小和放大&#xff09;&#xff0c;縮小和放大基本上采用圖像重取樣方法 最近鄰內插&#xff0c;這種方法將原圖像中最近鄰的灰度賦給了每個新…

然爸讀書筆記(2014-2)----影響力

第一章&#xff1a;影響力的武器 動物可能會看到某種顏色的羽毛而變得具有攻擊性&#xff0c;或者聽到某種叫聲久對自己的天敵呵護有加。動物的這種愚蠢機械反應在人類身上也有&#xff0c;在某個觸發特征出現時&#xff0c;我們會不假思索的做出相應的反應&#xff0c;之所以會…

pb 如何導出csv_Firefox火狐瀏覽器將提供導出密碼至本地的功能

6月2日&#xff0c;據外媒All About Lifehacks報道&#xff0c;Mozilla官方的bug報告頁面顯示&#xff0c;Firefox瀏覽器的導出或備份密碼請求的問題在前兩天被關閉&#xff0c;并被標記為已解決。據了解&#xff0c;該請求早在多年前就有人提出。如今被標記為已解決&#xff0…

跟著別人的感覺做網絡推廣之二

無意中闖入了站臺網&#xff08;一家歷史很悠久的分類信息網站&#xff0c;印象中比58 趕集 百姓創辦時間還早。&#xff09; 進入后當然看醫療分類了&#xff1a; http://www.zhantai.com/ 站臺網&#xff0c;不是大的省份網民不能位置定位時&#xff0c;默認進入的是北京分站…

iOS - OC 面向對象語法

1、類 1&#xff09;根類&#xff1a;因為類 NSObject 是層次結構的最頂層&#xff0c;因此稱為根類。 可以將類稱為子類&#xff08;subclass&#xff09;和父類&#xff08;superclass&#xff09;&#xff0c;也可以將類稱為子類和超類。2&#xff09;分類&#xff0f;類別&…

第2章 Python 數字圖像處理(DIP) --數字圖像基礎4 -- 像素間的一些基本關系 - 鄰域 - 距離測試

目錄像素間的一些基本關系像素的相鄰像素距離測試import sys import numpy as np import cv2 import matplotlib import matplotlib.pyplot as plt import PIL from PIL import Imageprint(f"Python version: {sys.version}") print(f"Numpy version: {np.__ve…

網頁關閉(解決window.close在火狐下不兼容問題)

熟悉前端的都知道&#xff0c;火狐默認狀態非window.open的頁面window.close是無效的 網上有很多人說&#xff0c;在火狐的地址欄輸入:about:config然后找到dom.allow_scripts_to_close_windows;把false改為true 看著這些人的說法&#xff0c;不得不說我蛋疼了 我做的是網站&am…

iphone備忘錄突然沒了_蘋果突然下架12 天貓:雙11有驚喜!iPhone12 mini配色縮水

點擊“藍字”關注我們蘋果旗艦店突然下架iPhone 12 天貓回應&#xff1a;請期待11.11的驚喜今天&#xff0c;有網友反饋&#xff0c;蘋果天貓旗艦店的iPhone 12和iPhone 12 Pro被下架了。小編查看了下&#xff0c;天貓Apple Store旗艦店確實已經下降了目前在售的 iPhone 12 和 …

CGI小白一些漫想

CGI Common Gateway Interface 一種基于瀏覽器的輸入、在Web服務器上運行的程序方法你創建客戶端的 CGI腳本, 服務器端的程序用來處理用戶輸入, 結果返回給用戶CGI腳本是什么&#xff1f;它是怎樣工作的  CGI腳本是用下列兩種方法使用的: 作為一個表單的ACTION 或 作為一個頁中…