做人学会说NO,写程序学会说NULL。----------设计模式


 

如果朋友要向你借钱,你没有钱但你没有跟朋友说,朋友以为你有钱借给,于是朋友急用钱,你却拿不出。
朋友借钱消费也就罢了,如果是看病,那可就耽误大事了!!

呵呵。
做人学会说NO,写程序学会说NULL。
 

 


namespace NullObject
{

    public abstract class Friend
    {
        public abstract bool IsHaveMoney();
        public abstract void Lend();
        public static readonly Friend NULL = new NullFriend(); //会说null 的朋友

        private sealed class NullFriend : Friend
        {
            public override bool IsHaveMoney()
            {
                Console.WriteLine("sorry, i have not money!\r\n");
                return false;
            }
            public override void Lend()
            {
                Console.WriteLine("NullFriend: no  lend();\r\n");
            }
        }
    }

    class Consumer
    {
        public static Friend getFriends()
        {
            return Friend.NULL;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Friend friend = Consumer.getFriends();
            if (friend.IsHaveMoney())
            {
                friend.Lend();
            }
            Console.WriteLine("end ;\r\n");
        }
    }
}

posted on 2011-01-06 18:44  酸辣大白菜  阅读(243)  评论(0编辑  收藏  举报

导航