单例模式

单例:通过此类,永远只能创建一个对象
过程:
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;
        }
    }
}

对象池在下篇更新。

莫说我穷的叮当响,大袖揽清风。 莫讥我困时无处眠,天地做床被。 莫笑我渴时无美酒,江湖来做壶。
原文地址:https://www.cnblogs.com/huang--wei/p/10062660.html