zoukankan      html  css  js  c++  java
  • 设计模式单列模式

    何为设计模式呢?简单的说就是能重复利用的解决方案,当碰到A项目也出现这种情况,B项目也出现这种情况

    那么是否能把这懂实现功能抽象出来,形成一种解决方案.

    单列模式:顾名思义就是一个实例(即一个对象只能初始化一次);作用:减少开辟内存空间,节约内存开销

    class Program
        {
            
            static void Main(string[] args)
            {
                A a1 = A(); 
                A a2 = A();
                Console.WriteLine(a1 == a2); //输出false
            }  
        }
    因为A对象在内存堆中开辟了 a1和a2两个内存空间 所以他们的内存地址不可能相对
    那么要怎样才能开辟一个空间呢,也就是创建一个对象呢?
    首先我们就要阻击它new A(),阻击new A()那么构造函必须就要private()私有化
    下面上代码:
    class Program
        {
            
            static void Main(string[] args)
            {
                A a1 = A.getsingleInstance(); //同一个内存地址
                A a2 = A.getsingleInstance();
                A a3 = A.getsingleInstance();
                Console.WriteLine(a1 == a2);
                Console.WriteLine(a2 == a3);
               
            }  
        }
        public class A
        {
            private static A a =null; //静态变量在类加载的时初始化,并且只初始化一次
           
            /// <summary>
            /// 构造方法私有化在外不能new对象
            /// </summary>
            private A()
            {
            }
            public static A getsingleInstance()
            {
                if (a == null)
                {
                    a = new A();
                }
                return  a;
            } 
        }

      


      

  • 相关阅读:
    nginx入门与实战
    python开发之virtualenv与virtualenvwrapper讲解
    Linux下的python3,virtualenv,Mysql、nginx、redis安装配置
    Linux系统基础优化及常用命令
    vim与程序员
    Shell基本命令
    Linux之文档与目录结构
    远程连接Linux
    oracle 根据时间戳查询date类型sql
    oracle 锁用户
  • 原文地址:https://www.cnblogs.com/yzenet/p/3065837.html
Copyright © 2011-2022 走看看