標籤:style blog http color os ar 2014 art sp
所謂的"對象為Null模式",就是要求開發人員考慮對象為Null的情況,並設計出在這種情況下的應對方法。
拿"用最簡單的例子理解策略模式(Strategy Pattern) "中的例子來說,在我們的用戶端程式中只考慮了使用者輸入1,2,3的情況,如果使用者輸入其它數字,比如4,就沒有一個對應的IBall介面實作類別執行個體產生,於是會報如下的錯:
為了應對這種情況,我們專門設計一個類,當使用者輸入1,2,3以上的數字,就產生該類的執行個體。該類同樣實現IBall介面。
public class Others : IBall
{ public void Play()
{ Console.WriteLine("您選擇的球類項目目前還不存在~~"); }
}
在用戶端程式中,修改為:
class Program
{ static void Main(string[] args)
{ IBall ball = null;
SportsMan man = new SportsMan();
while (true)
{ Console.WriteLine("選擇你喜歡的球類項目(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部分,當使用者輸入1,2,3以外的數字,就建立一個同樣實現IBall介面、專門處理Null的類執行個體。
用最簡單的例子理解對象為Null模式(Null Object Pattern)