zoukankan      html  css  js  c++  java
  • 单例模式

    单例:通过此类,永远只能创建一个对象
    过程:
    1.创建一个类类型的静态变量
    2.编写private构造函数,给字段进行初始化
    3.编写静态方法,通过private构造函数创建类变量
    (1)判断类变量是否为空
    (2)如果为空,调用private构造函数创建类变量,不为空,直接return
    (3)函数返回类变量。继续使用创建的类变量

    设计模式--单例模式

    // 单例模式的实现
        /// </summary>
        public class Singleton
        {
            // 定义一个静态变量来保存类的实例
            private static Singleton uniqueInstance;
    
            // 定义私有构造函数,使外界不能创建该类实例
            private Singleton()
            {
            }
    
            /// <summary>
            /// 定义公有方法提供一个全局访问点,同时你也可以定义公有属性来提供全局访问点
            /// </summary>
            /// <returns></returns>
            public static Singleton GetInstance()
            {
                // 如果类的实例不存在则创建,否则直接返回
                if (uniqueInstance == null)
                {
                    uniqueInstance = new Singleton();
                }
                return uniqueInstance;
            }
        }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace _001单例设计模式
    {
        class Program
        {
            static void Main(string[] args)
            {
                Person person = Person.getInstance("Dog");
                Console.WriteLine(person.name);
    
                //Person a = Person.getInstance("PIG");只能创建一个对象
                //Console.WriteLine(person.name);
            }
        }
        class Person
        {
            public string name;
            //1.
            public static Person person;
            //2.
            private Person()
            {
                Console.WriteLine("私有无参构造函数被调用");
                name = "huang";
            }
            private Person (string _n)
            {
                Console.WriteLine("私有NO无参构造函数被调用");
                name = _n;
            }
            //3.
            public static Person getInstance(string _name)
            {
                if (person == null)
                {
                    person = new Person(_name);
                }
                return person;
            }
        }
    }

    对象池在下篇更新。

    莫说我穷的叮当响,大袖揽清风。 莫讥我困时无处眠,天地做床被。 莫笑我渴时无美酒,江湖来做壶。
  • 相关阅读:
    mysql中如何根据id,一次查询对应id的数据
    DataFrame中merge、concat、join,以及用一个data更新另一个data的方法
    pandas中drop_duplicates用法
    DataFrame中根据某字段选取重复字段数据
    金融数据处理过程中的一些小tip
    pandas中某一列的值满足一定条件就改变
    MIKE指标
    python 数据处理中的记录
    python绘制主次坐标图
    python学习笔记之四-多进程&多线程&异步非阻塞
  • 原文地址:https://www.cnblogs.com/huang--wei/p/10062660.html
Copyright © 2011-2022 走看看