用最简单的例子理解对象为Null模式(Null Object Pattern)
2014-09-06 23:03
651 查看
所谓的"对象为Null模式",就是要求开发者考虑对象为Null的情况,并设计出在这种情况下的应对方法。
拿"用最简单的例子理解策略模式(Strategy Pattern) "中的例子来说,在我们的客户端程序中只考虑了用户输入1,2,3的情况,如果用户输入其它数字,比如4,就没有一个对应的IBall接口实现类实例产生,于是会报如下的错:
为了应对这种情况,我们专门设计一个类,当用户输入1,2,3以上的数字,就产生该类的实例。该类同样实现IBall接口。
在客户端程序中,修改为:
以上,在swich语句中的default部分,当用户输入1,2,3以外的数字,就创建一个同样实现IBall接口、专门处理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的类实例。
相关文章推荐
- 用最简单的例子理解观察者模式(Observer Pattern)
- 用最简单的例子理解装饰器模式(Decorator Pattern)
- 用最简单的例子理解模板方法模式(Template Method Pattern)
- 用最简单的例子理解命令模式(Command Pattern)
- C#对象为Null模式(Null Object Pattern)实例教程
- 设计模式:空对象模式(Null Object Pattern)
- 被遗忘的设计模式——空对象模式(Null Object Pattern)
- 设计模式(2)结合代码和例子来理解简单工厂模式
- 【设计模式】空对象模式(Null Object Pattern)
- 空对象模式(Null Object Pattern)
- 设计模式之空对象模式--- Pattern Null Object
- 被遗忘的设计模式——空对象模式(Null Object Pattern)
- 用最简单的例子理解策略模式(Strategy Pattern)
- 被遗忘的设计模式——空对象模式(Null Object Pattern)
- Java Null Object Pattern(空对象模式)
- 设计模式(2)结合代码和例子来理解简单工厂模式
- 用最简单的例子理解单例模式(Singleton Pattern)
- 用最简单的例子理解复合模式(Composite Pattern)
- 特例模式(Special Case Pattern)与空对象模式(Null Pointer Pattern)—— 返回特例对象而非 null
- 设计模式:空对象模式(Null Object Pattern)