单件模式 Singleton

故事:

  每个公司/工厂通常只有一个前台(有的没有),有或者没有这是一个问题。

 

建模:

  前台:能够提供各种服务的前台。

 

类图:

实现:

FrontDesk

namespace Singleton
{
    public class FrontDesk
    {
        static FrontDesk current;
        private FrontDesk()
        {
            Console.WriteLine("新建前台成功");
        }
        public static FrontDesk Instance()
        {
            if (current == null)
            {
                current = new FrontDesk();
                return current;
            }
            return current;
        }

        public static bool Exist()
        {
            if (current == null)
                return false;
            else
                return true;
        }
    }
}

Program

namespace Singleton
{
    class Program
    {
        static void Main(string[] args)
        {
            if (FrontDesk.Exist())
            {
                Console.WriteLine("\n已存在一个前台!\n");
            }
            else
            {
                Console.WriteLine("\n当前不存在前台!\n");
                FrontDesk frontDesk = FrontDesk.Instance();
                if (FrontDesk.Exist())
                {
                    Console.WriteLine("前台有人值班,可提供服务");
                }
            }
        }
    }
}

 

效果:

转载于:https://www.cnblogs.com/jiejue/archive/2012/10/05/2712319.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值