zoukankan      html  css  js  c++  java
  • 单件模式 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("前台有人值班,可提供服务");
                    }
                }
            }
        }
    }

    效果:

  • 相关阅读:
    Python-Jenkins 查询job是否存在
    关于QT
    编译C++程序
    Linux基础知识
    Ubuntu下安装QT
    Linux下的编辑器Notepadqq
    简单的说两句
    c之void及void*
    c之(类型)-1?
    c之枚举默认值
  • 原文地址:https://www.cnblogs.com/jiejue/p/2712319.html
Copyright © 2011-2022 走看看