日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#23种开发模式,陆续完善中

發(fā)布時間:2025/7/14 C# 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#23种开发模式,陆续完善中 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1 #region 單例模式 2 #region 線程非安全單例模式 3 public class Singleton1 4 { 5 private Singleton1() { } 6 private static Singleton1 testdemo1 = null; 7 public static Singleton1 GetSingleton() 8 { 9 if (testdemo1 == null) 10 return new Singleton1(); 11 else 12 return testdemo1; 13 } 14 } 15 #endregion 16 #region 線程安全單例模式 17 public class Singleton 18 { 19 private Singleton() { } 20 private static Singleton singleton = new Singleton(); 21 public static Singleton GetSingleton() { return singleton; } 22 } 23 #endregion 24 #endregion 25 #region 工廠模式 26 public abstract class Food 27 { 28 public abstract void Print(); 29 } 30 #region 實現(xiàn)吃的方法 31 public class TomatoScrambledEggs : Food 32 { 33 public override void Print() 34 { 35 Console.WriteLine("西紅柿炒雞蛋好了"); 36 } 37 } 38 public class ShreaddedPorkWithPotatoes : Food 39 { 40 public override void Print() 41 { 42 Console.WriteLine("土豆絲炒雞蛋好了"); 43 } 44 } 45 #endregion 46 public abstract class Creator 47 { 48 public abstract Food CreateFoddFactory(); 49 } 50 public class ShreaddedPorkWithPotatoesFactory : Creator 51 { 52 public override Food CreateFoddFactory() 53 { 54 return new ShreaddedPorkWithPotatoes(); 55 } 56 } 57 public class TomatoScrambledEggsFactory : Creator 58 { 59 public override Food CreateFoddFactory() 60 { 61 return new TomatoScrambledEggs(); 62 } 63 } 64 #endregion View Code

工廠方法模式的UML圖

講解完工廠模式的具體實現(xiàn)之后,讓我們看下工廠模式中各類之間的UML圖:

從UML圖可以看出,在工廠方法模式中,工廠類與具體產(chǎn)品類具有平行的等級結構,它們之間是一一對應的。針對UML圖的解釋如下:

Creator類:充當抽象工廠角色,任何具體工廠都必須繼承該抽象類

TomatoScrambledEggsFactory和ShreddedPorkWithPotatoesFactory類:充當具體工廠角色,用來創(chuàng)建具體產(chǎn)品

Food類:充當抽象產(chǎn)品角色,具體產(chǎn)品的抽象類。任何具體產(chǎn)品都應該繼承該類

TomatoScrambledEggs和ShreddedPorkWithPotatoes類:充當具體產(chǎn)品角色,實現(xiàn)抽象產(chǎn)品類對定義的抽象方法,由具體工廠類創(chuàng)建,它們之間有一一對應的關系。

四、.NET中實現(xiàn)了工廠方法的類

.NET 類庫中也有很多實現(xiàn)了工廠方法的類,例如Asp.net中,處理程序?qū)ο笫蔷唧w用來處理請求,當我們請求一個*.aspx的文件時,此時會映射到System.Web.UI.PageHandlerFactory類上進行處理,而對*.ashx的請求將映射到System.Web.UI.SimpleHandlerFactory類中(這兩個類都是繼承于IHttpHandlerFactory接口的),關于這點說明我們可以在“C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\Web.Config”文件中找到相關定義,具體定義如下:

<httpHandlers> <add path="*.axd" verb="*" type="System.Web.HttpNotFoundHandler" validate="True" /><add path="*.aspx" verb="*" type="System.Web.UI.PageHandlerFactory" validate="True" /><add path="*.ashx" verb="*" type="System.Web.UI.SimpleHandlerFactory" validate="True" /> </httpHandlers>

下面我們就具體看下工廠方法模式在Asp.net中是如何實現(xiàn)的,如果對一個Index.aspx頁面發(fā)出請求時,將會調(diào)用PageHandlerFactory中GetHandler方法來創(chuàng)建一個Index.aspx對象,它們之間的類圖關系如下:

五、總結

工廠方法模式通過面向?qū)ο缶幊讨械亩鄳B(tài)性來將對象的創(chuàng)建延遲到具體工廠中,從而解決了簡單工廠模式中存在的問題,也很好地符合了開放封閉原則(即對擴展開發(fā),對修改封閉)。

轉(zhuǎn)載于:https://www.cnblogs.com/aaaaq/p/6285894.html

總結

以上是生活随笔為你收集整理的C#23种开发模式,陆续完善中的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。