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