您的位置:首页 > 移动开发 > Objective-C

用最简单的例子理解对象为Null模式(Null Object Pattern)

2014-09-06 23:03 651 查看
所谓的"对象为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的类实例。



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: