码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2014-09-06 23:48:46      阅读:302      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   ar   2014   art   sp   

所谓的"对象为Null模式",就是要求开发者考虑对象为Null的情况,并设计出在这种情况下的应对方法。


拿"用最简单的例子理解策略模式(Strategy Pattern) "中的例子来说,在我们的客户端程序中只考虑了用户输入1,2,3的情况,如果用户输入其它数字,比如4,就没有一个对应的IBall接口实现类实例产生,于是会报如下的错:


bubuko.com,布布扣

 

为了应对这种情况,我们专门设计一个类,当用户输入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的类实例。       

bubuko.com,布布扣

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

标签:style   blog   http   color   os   ar   2014   art   sp   

原文地址:http://www.cnblogs.com/darrenji/p/3959925.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!