C#對象為Null模式(Null Object Pattern)實(shí)例教程
本文以實(shí)例形式簡單講述了C#對象為Null模式(Null Object Pattern),分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:
所謂的"對象為Null模式",就是要求開發(fā)者考慮對象為Null的情況,并設(shè)計(jì)出在這種情況下的應(yīng)對方法。
以前面"C#策略模式(Strategy Pattern) "一文中的例子來說,在我們的客戶端程序中只考慮了用戶輸入1,2,3的情況,如果用戶輸入其它數(shù)字,比如4,就沒有一個(gè)對應(yīng)的IBall接口實(shí)現(xiàn)類實(shí)例產(chǎn)生,于是會報(bào)如下的錯(cuò):
為了應(yīng)對這種情況,我們專門設(shè)計(jì)一個(gè)類,當(dāng)用戶輸入1,2,3以上的數(shù)字,就產(chǎn)生該類的實(shí)例。該類同樣實(shí)現(xiàn)IBall接口。
public class Others : IBall { public void Play() { Console.WriteLine("您選擇的球類項(xiàng)目目前還不存在~~"); } }
在客戶端程序中,修改為:
class Program { static void Main(string[] args) { IBall ball = null; SportsMan man = new SportsMan(); while (true) { Console.WriteLine("選擇你喜歡的球類項(xiàng)目(1=足球, 2=籃球,3=排球)"); string input = Console.ReadLine(); switch (input) { case "1": ball = new Football(); break; case "2": ball = new Basketball(); break; case "3": ball = new Volleyball(); break; default: ball = new Others(); break; } man.SetHobby(ball); man.StartPlay(); } } }
以上,在swich語句中的default部分,當(dāng)用戶輸入1,2,3以外的數(shù)字,就創(chuàng)建一個(gè)同樣實(shí)現(xiàn)IBall接口、專門處理Null的類實(shí)例。
相信本文所述實(shí)例對大家C#程序設(shè)計(jì)的學(xué)習(xí)有一定的借鑒價(jià)值。
相關(guān)文章
C#實(shí)現(xiàn)裝箱與拆箱操作簡單實(shí)例
這篇文章主要介紹了C#實(shí)現(xiàn)裝箱與拆箱操作,對于新手理解裝箱與拆箱有一定的幫助,需要的朋友可以參考下2014-07-07Unity ScrollView實(shí)現(xiàn)無限循環(huán)效果
這篇文章主要為大家詳細(xì)介紹了Unity ScrollView實(shí)現(xiàn)無限循環(huán)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07