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;
            }
        }
    }

    对象池在下篇更新。

    莫说我穷的叮当响,大袖揽清风。 莫讥我困时无处眠,天地做床被。 莫笑我渴时无美酒,江湖来做壶。
  • 相关阅读:
    .NET互操作技术杂谈
    VS2008 Remote Debug HOW TO
    Entity Framework一对多关系或一对一关系删除子对象的方法
    Associations in EF Code First: Part 1 – Introduction and Basic Concepts
    如何管理Entity Framework中得事务
    在asp.net mvc3中编译视图文件
    entity framework中对关系使用默认规则与配置
    使用Entity Framework时动态生成lamda表达式
    asp.net mvc 身份验证中返回绝对路径的ReturnUrl
    Entity Framework 事务处理SaveChanges(false)
  • 原文地址:https://www.cnblogs.com/huang--wei/p/10062660.html
Copyright © 2011-2022 走看看