C#設計模式

來源:互聯網
上載者:User

標籤:

 

自從上次記錄完“重構之道”以後,查詢設計模式挺麻煩的。就打算把原先寫的設計模式系列合并一下。

設計原則

使用設計模式的根本原因就是適應需求變化,提高代碼的複用率,使程式更具有擴充性和可維護性。

SOLID原則和七大原則

想必S.O.L.I.D大家都知道,物件導向的五大設計原則。其中C#設計模式,又添加了以下兩條原則。總共是7大設計原則。

SRP(單一責任原則):只有一種原因會導致某個類的修改。讓一個類只做一種類型責任,如需承擔其他類型的責任時,應分解這個類。

OCP(開放封閉原則):軟體實體(類,函數,模組等)應該對擴充開放,對修改關閉。每發生變化,需要通過添加新代碼來增強型別的行為,而不是修改原有代碼。

LSP(裡氏替換原則):當子類替換掉他們的父類型,軟體功能不受影響,父類才能真正使用,子類可以在父類的基礎上添加新的行為。

ISP(介面隔離原則):使用專門的介面比使用單一的總介面要好很多。不要讓單一介面承擔過多的職責,針對職責進行介面分離。

DIP(依賴倒置原則):抽象不應該依賴於細節,細節應該依賴於抽象,面向介面編程。可以降低客戶與具體實現的耦合。

CRP(合成複用原則):使用合成/彙總,盡量不要使用繼承。在新的對象中,使用一些已有對象,讓他成為新對象的一部分。

LOD(迪米特法則):一個模組或對象應盡量少與其他實體之間發生相互作用,使得系統相對獨立,這樣修改影響會減少,擴充會更容易。

建立型模式

用來建立對象的模式,抽象了執行個體化過程。有兩個共同點。1.都將使用的具體類進行封裝。2.隱藏類的執行個體是如何被組織建立的。

單例模式

確保一個類只有一個執行個體,並提供一個全域訪問點。

//使用單例模式建立類    public class Goddess    {        //封裝具體類        private static Goddess _goddess;        //使用lock鎖,定義鎖定的靜態變數        private static object _obj = new object();        //建立全域訪問點        public static Goddess CreateGoddess()        {            if (_goddess != null)            {                return _goddess;            }            //使用lock鎖過濾            lock (_obj)            {                if (_goddess == null)                {                    _goddess = new Goddess();                }                return _goddess;            }        }    }
單例模式

 

 

 

 

 

 

 

 

 

 

 

 

 

預留位置

C#設計模式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.