|
一、開篇
其實我本來不是打算把系統架構中的一些設計模式單獨抽出來講解的,因為很多的好朋友也比較關注這方面的內容,所以我想通過我理解及平時項目中應用到的一些常見的設計模式,拿出來給大家做個簡單講解,我這里只是拋磚引玉,如果某個地方講解的不正確或者不詳細,請大家批評指出。園子里面的很多的大牛寫的設計模式都非常的經典,我這里寫可能有點班門弄斧的感覺,不過我還是決定把它寫出來,希望能對初學者有一定的幫助和指導的作用。當然我這里如果說某個地方解釋的有問題或者說是某個地方寫的不符合邏輯之處,還請大家多多指出,提出寶貴意見。
軟件工程中其實有很多總結性的話語,比如說軟件=算法+數據結構等等這樣的描述,當然我們這里可能算法就是泛指一些軟件中的編程方法了,設計模式怎么去理解呢?為什么要有設計模式?它能帶來什么?等等這些都是我們需要討論的問題。首先我們需要知道設計模式能帶來什么。可能這才是我們學習它的主要原因,如果說不能為我們在書寫軟件的過程中帶來更方面的好處,那我們也不會使用和學習它。
設計模式是什么?
設計模式可以簡單的理解為解決某一系列問題的完美的解決方案。我們在軟件開發的過程中經常遇到設計功能實現的問題,而設計模式正是為了解決軟件設計功能實現時遇到的某一類問題的解決方案。因為一般情況下來說,我們在某個軟件功能的開發過程中遇到的功能設計問題,可能是前人很早就遇到過的問題,所以通過這種設計模式的方式來解決,能讓我們在軟件實現的過程中少走彎路,或者說是給我們的軟件設計帶來很好的靈活性和適應性。
設計模式帶來了什么?
設計模式是源于實踐,并且每種設計模式都包含了一個問題描述,問題涉及到的參與者并且提供了一個實際的解決方案。設計模式的好處我們可以通過下圖來簡單說明: 當然我這里可能總結還不完全,還請大家補充,我會更新這里面的內容。當然設計模式帶來了這么多的好處,所以我們學習設計模式就顯得比較必要了,也是從事軟件開發及設計必須掌握的基本技能之一。
當然這里可以簡單的分為這3大類,下面我們在講述的過程中將會分別講解,當然我這里是以創建型模式開始講解,我想創建型模式也是大家項目中必備的吧?下面我就從創建型模式先來講解。
二、摘要
本文將主要講解創建型模式中的單例模式先來講解,因為單例模式是最簡單也是最容易理解的設計模式,上手快,易使用的設計模式。本文將從下面的流程來講解單例模式,后面講述的設計模式也將使用這樣的方式。
1、什么是單例模式?
2、單例模式的應用場景。
3、舉例說明單例模式的使用。
4、總結單例模式的用法。
三、本文大綱
a、開篇。
b、摘要。
c、本文大綱。
d、單例模式的簡介。
e、相關應用場景分析。
f、本文總結。
g、系列進度。
h、下篇預告。
四、單例模式的簡介
本章我們將來講述下單例模式的使用,首先我們來看看單例模式的定義:
單例模式:是一種軟件設計中常用的設計模式,主要是用來控制某個類必須在某個應用程序中只能有一個實例存在。
有時候我們需要確保整個系統中只有某個類的一個實例存在,這樣有利于我們協調控制系統的行為。例如:我們在某個系統中使用了發送短信的這樣的服務,那么我們可能希望通過單一的短信服務類的實例,而不是多個對象實例完成短信的發送服務。這時我們可以通過單例模式來完成。
上圖簡單描述了單例模式應用的位置。
下面我們來舉例說明下這2種方式的實現。
1、外部控制的方式
public class Instance
{
private List<SendMessage> lists = new List<SendMessage>();
private SendMessage sendInstance;
public SendMessage SInstance
{
get
{
return sendInstance;
}
}
public void InstanceMethod()
{
if (lists.Count == 0)
{
sendInstance = new SendMessage();
lists.Add(sendInstance);
}
else
{
sendInstance = lists[0];
}
}
}
it知識庫:系統架構技能之設計模式—單件模式,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。