您好,登錄后才能下訂單哦!
單例模式是一種常用的軟件設計模式,在它的核心結構中只包含一個被稱為單例的特殊類。
通過單例模式可以保證系統中一個類只有一個實例,即一個類只有一個對象實例。
這一模式的目的是使得類的一個對象稱為系統中的唯一實例。
單例模式的要點有三個:一是該類只能有一個實例;二是該類必須自行創建這個實例;三是該類必須自行向整個系統提供這個實例。
從具體實現角度來說,就是以下三點:
單例模式的類只提供私有的構造函數;
類的定義中含有一個該類的靜態私有對象;
該類提供了一個靜態且公用的函數用于創建或者獲取它本身的靜態私有對象;
個人覺得對于初級程序而言,技能知識的學習要理論和代碼一起研究,才能夠做到心領神會,下面就奉上小編自己敲的代碼以供你參考,當然你也可以直接下載后在本地查看!
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
namespace WpfApp.Practices
{
public class getXMLConfigInfo
{
#region 定義一個獲取本地XML配置信息的單例模式類 getXMLConfigInfo
//定義一個靜態且私有的getXMLConfigInfo的類對象XMLConfigInstance并賦為空
private static getXMLConfigInfo XMLConfigInstance = null;
//定義一個靜態且公用的方法用于統一調用該類中的方法
public static getXMLConfigInfo getXMLConfigInstance()
{
if(XMLConfigInstance == null)
{
XMLConfigInstance = new getXMLConfigInfo();
}
return XMLConfigInstance;
}
//自定義一個私有的構造函數
private getXMLConfigInfo()
{
//getXMLConfigRoot("SystemConfigs");
}
#endregion
/// <summary>
/// 加載本地SystemConfig.xml文件并查找根節點
/// </summary>
/// <param name="singleNode">傳入要查找的節點</param>
/// <returns></returns>
public XmlNode getXMLConfigRoot(string singleNode)
{
//創建一個XmlDocument對象
XmlDocument xmlDoc = new XmlDocument();
//定義并獲取程序運行時的本地路徑
String xmlPath = System.Environment.CurrentDirectory;
//判斷該路徑下是否存在SystemConfig.xml文件
if(!File.Exists(xmlPath + "\\SystemConfig.xml"))
{
throw new Exception("This File isn't Exist!");
}
//加載SystemConfig.xml文件
xmlDoc.Load(xmlPath + "\\SystemConfig.xml");
//選中SystemConfig.xml文件中的根節點
XmlNode root = xmlDoc.SelectSingleNode("SystemConfigs");
//定義需要查找的節點
XmlNode NeedRoot = null;
//遍歷根節點下的所有子節點
foreach(XmlNode childNode in root.ChildNodes)
{
//如果遍歷得到的子節點與所需要查找的節點相同,則返回該節點
if(childNode.Name.Equals(singleNode))
{
NeedRoot = root.SelectSingleNode(singleNode);
}
}
return NeedRoot;
}
/// <summary>
/// 獲取SystemConfig.xml文件中的預留電話/手機號碼
/// </summary>
/// <param name="type">傳入要獲取的節點的屬性名稱</param>
/// <returns></returns>
public string getPersonalContactInfo(string type)
{
//得到所需的節點屬性的父節點
XmlNode NeededRoot = getXMLConfigRoot("SelfPrePhone");
//定義變量用于暫時保存獲取出來的節點屬性的值
string NeedValue = "";
//如果所需杰節點屬性的父節點不存在,則拋出錯誤信息
if (NeededRoot == null)
{
throw new Exception("讀取配置節點SelfPrePhone文件錯誤");
}
//遍歷所需節點的所有屬性,并返回所查找的屬性的值
foreach (XmlNode NeedTypeChildNode in NeededRoot.ChildNodes)
{
NeedValue = NeedTypeChildNode.Attributes[type].Value;
}
return NeedValue;
}
}
}
以上的代碼便是單例模式寫的獲取本地XML文件中的配置信息的類
<SystemConfigs>
<AutoCloseSystemSet>
<CloseSystemTimeSet CloseTime="14:30:00"/>
</AutoCloseSystemSet>
<SelfPrePhone>
<PrePhone tel="0571-81234567" Phone="18765432173"></PrePhone>
</SelfPrePhone>
</SystemConfigs>
這段XML便是本地SystemConfig.xml文件中的內容信息
string test1 = getXMLConfigInfo.getXMLConfigInstance().getPersonalContactInfo("Phone");
string test3 = getXMLConfigInfo .getXMLConfigInstance().getPersonalContactInfo("tel");
以上兩個語句便是通過單例模式類getXMLConfigInfo來獲取在SystemConfig.xml中配置的預留手機號和預留電話號碼的前端寫法。
感謝你耐心閱讀完本文,祝你學習愉快昂,哈哈。。。。。。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。