1. 程式人生 > >C#專案中常用到的設計模式

C#專案中常用到的設計模式

1.引言

一個專案的通常都是從Demo開始,不斷為專案新增新的功能以及重構,也許剛開始的時候程式碼顯得非常凌亂,毫無設計可言。但是隨著專案的迭代,往往需要將很多相同功能的程式碼抽取出來,這也是設計模式的開始。熟練運用設計模式應該是每一個軟體開發人員的必備技能。今天給大家介紹幾個常用的設計模式。

2. 單例模式

單例模式恐怕是很多開發人員最先接觸到的模式之一,可以認為就是一個全域性變數。它的初始化過程無非就是一開始就new 一個instance,或者惰性初始化等需要用到的時候new 一個instance。這裡需要注意的是在多執行緒情況下new一個instance。通常加上lock 可以解決問題。這裡我們利用C# 的系統函式 Interlocked.CompareExchange

internalclassSingletonOne

{

privatestaticSingletonOne _singleton;

privateSingletonOne()

{

}

publicstaticSingletonOneInstance

{

get

{

if(_singleton == null)

{

Interlocked.CompareExchange(ref_singleton,newSingletonOne(),null);

}

return_singleton

;

}

}

}

3. 迭代器模式

迭代器模式也是用的比較多的一種,通常見於C#的內建容器資料結構 List,Stack等等,為了便於遍歷容器內元素。這裡給出一個簡單版的Stack實現

internalclassStack : IEnumerable,IEnumerable

{

privateT[]_array;

privateint_index;

privateconstintDefaultSize = 4;

publicStack(intsize)

{

varsized = size

> 0?size : DefaultSize;

this._array = newT[sized];

this._index = 0;

}

publicintCount

{

get{returnthis._index;}

}

publicStack(IEnumerable data) : this(0)

{

varenumrator = data.GetEnumerator();

while(enumrator.MoveNext())

{

varitem = enumrator.Current;

this.Push(item);

}

}

publicvoidPush(Titem)

{

if(this._index this._array.Length)

{

this._array[

相關推薦

C#專案常用到的設計模式

1.引言 一個專案的通常都是從Demo開始,不斷為專案新增新的功能以及重構,也許剛開始的時候程式碼顯得非常凌亂,毫無設計可言。但是隨著專案的迭代,往往需要將很多相同功能的程式碼抽取出來,這也是設計模式的開始。熟練運用設計模式應該是每一個軟體開發人員的必備技能

java常用設計模式

一.java的設計模式大體上分為三大類: 建立型模式(5種):工廠方法模式,抽象工廠模式,單例模式,建造者模式,原型模式。 結構型模式(7種):介面卡模式,裝飾器模式,代理模式,外觀模式,橋接模式,組合模式,享元模式。 行為型模式(11種):策略模式、模板方法模

Android常用設計模式

介紹 Java 中一般認為有 23 種設計模式,我們不需要所有的都會,但是其中常用的幾種設計模式應該去掌握。下面列出了所有的設計模式。需要掌握的設計模式我單獨列出來了,當然能掌握的越多越好。 總體來說設計模式分為三大類: 建立型模式,共五種:工廠方法模式、

小談閘道器專案設計模式

基於個人的經驗,談談設計模式在閘道器中的應用。因為是經驗之談,沒有絕對的對與錯。 下面整理的是我最常使用的設計模式,我用設計模式的前提是 讓程式碼的可讀性變強 能支援日後功能擴充套件 單例 目的 保證全域性只有一個例項,防止因為頻繁的建立、銷燬物件而造成不必要的效能開銷。 在閘道器專案中,單例模式是出

C#之常用設計模式(unity版本)

                                          &nb

C++重寫《大話設計模式模式例項七(模板方法模式

其實模板模式的用途比較簡單,我們平時也經常使用。 模板模式就是把子類中相似的部分,儘可能提升到父類中處理,減少重複程式碼。  程式: #include <iostream> #include <cstdlib> using namespace std

C++重寫《大話設計模式模式例項二(工廠模式

下面連結文章是我改寫的簡單工廠模式,可以和工廠模式做對比。 程式:輸入兩個數和運算子,得到 結果。 雖然工廠模式比簡單工廠模式編寫複雜一點,但是它更符合“開放-封閉原則”,就是程式增加功能應該是

C++重寫《大話設計模式模式例項三(抽象工廠模式

(宣告:如果想看例項詳細解析,請看《大話設計模式》,這裡文章只是為了加深學習設計模式印象而自己用C++程式寫一遍,以及把程式碼共享給大家。僅僅是把C#語言換成C++表述,不對書中的程式和例子是否合適做個

C++重寫《大話設計模式模式例項四(策略模式

(宣告:如果想看例項詳細解析,請看《大話設計模式》,這裡文章只是為了加深學習設計模式印象而自己用C++程式寫一遍,以及把程式碼共享給大家。僅僅是把C#語言換成C++表述,不對書中的程式和例子是否合適做個

C++重寫《大話設計模式模式例項六(代理模式

(宣告:如果想看例項詳細解析,請看《大話設計模式》,這裡文章只是為了加深學習設計模式印象而自己用C++程式寫一遍,以及把程式碼共享給大家。僅僅是把C#語言換成C++表述,不對書中的程式和例子是否合適做個

Java幾個常用設計模式

1.單例模式(有的書上說叫單態模式其實都一樣) 該模式主要目的是使記憶體中保持1個物件。看下面的例子: package org.sp.singleton; //方法一 public class Singleton { //將自身的例項物件設定為一個屬性,並加上S

C#.架構設計 資料(二)c# 專案包含了多個模組或多個功能,如何靈活開啟/關閉、新增/刪除某個模組或功能

一、簡介       不知不覺,短短几個月的時間,我已經寫了大大小小100篇部落格。短短几個月的時間,見證了我的努力、我的收穫、我的學習效率。從一開始的零基礎,到現在我需要了解整個專案的設計架構,才能來滿足我的設計需求。      

常用設計模式的小結和實際的應用

1.單例模式(Singleton): 保證一個類僅有一個例項,並提供一個訪問它的全域性控制點.  比如在載入配置檔案時, 可使用該模式. 2.工廠模式(Factory): 定義一個用以建立物件的介面, 讓子類決定例項化哪個類.  當遇到需要根據某個前提條件建立不同的類

C++ 常用設計模式(學習筆記)

1、工廠模式:簡單工廠模式、工廠方法模式、抽象工廠模式  1)、簡單工廠模式:主要特點是需要在工廠類中做判斷,從而創造相應的產品,當增加新產品時,需要修改工廠類。typedef enum { T80 = 1, T99 }TankType; class Tan

關於C++PIMPL設計模式的理解

前言    近段時間在學習Qt程式設計,在學習中發現在很多生成的程式碼中都有先定義一個Ui名稱空間,在Ui名稱空間中定義一個類,然後接下來又給出一個同名的類的定義,對這種用法由於在之前C++的學習中並沒有使用過,因此對該用法進行了一定的研究,結合老師的講解,在此談談對該設計模

Objective-C常用設計模式(一)--工廠方法模式

工廠方法模式:定義建立物件的介面,讓子類決定例項化哪一個類。工廠方法使得一個類的例項化延遲到其子類。幾乎所有面向物件語言寫的應用程式都能看到工廠方法。“專門定義一個類來負責建立其他類的例項,被建立的例項通常具有共同的父類。”工廠方法模式使用場景:編譯時無法準確預期要建立的物件

23種常用設計模式C++)

Part One: Methods for constrcting a new object: 1. Factory method 我們把簡單工廠方法歸類到工廠方法中。工廠方法的目的是用來解決具有同一介面(基類)派生類物件的生成問題。儘管可以通過類的建構函式生成物件,

C#常用設計模式

角色:使用者,工廠,產品. 目的是使得使用者將產品的消費和生產分開.在程式設計中就是將類的建立和使用分開.從而達到責任分離,其實這也是所有建立模式的目的之一.做法是工廠類根據使用者的要求(引數)來返回不同的類的例項. 工廠實現:採用引數化的靜態方法

常用設計模式的實現,以及Netty設計模式

1.觀察者模式   有兩個角色,觀察者和被觀察者。當被觀察者發出訊息後,註冊了的觀察者會收到其訊息,而沒有註冊的觀察者就不會收到。 //定義觀察者介面 interface Observer{ //通知觀察者 void notify(String message); } //定義被觀察者 i

談談Java常用類庫設計模式 - Part Ⅰ

## 背景 最近一口氣看完了Joshua Bloch大神的*Effective Java*(下文簡稱EJ)。書中以tips的形式羅列了Java開發中的最佳實踐,每個tip都將其意圖和要點壓縮在了標題裡,這種做法我很喜歡:一來比較親切,比起難啃的系統書,EJ就像是一本Java的《俚語指南》;二來記憶起來十分方