博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
创建型设计模式之单例模式(Singleton)
阅读量:6416 次
发布时间:2019-06-23

本文共 1660 字,大约阅读时间需要 5 分钟。

 结构
意图 保证一个类仅有一个实例,并提供一个访问它的全局访问点。
适用性
  • 当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。
  • 当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。

 

1 using System; 2  3     class Singleton  4     { 5         private static Singleton _instance; 6          7         public static Singleton Instance() 8         { 9             if (_instance == null)10                 _instance = new Singleton();11             return _instance;12         }13         protected Singleton(){}14 15         // Just to prove only a single instance exists16         private int x = 0;17         public void SetX(int newVal) {x = newVal;}18         public int GetX(){
return x;} 19 }20 21 /// 22 /// Summary description for Client.23 /// 24 public class Client25 {26 public static int Main(string[] args)27 {28 int val;29 // can't call new, because constructor is protected30 Singleton FirstSingleton = Singleton.Instance(); 31 Singleton SecondSingleton = Singleton.Instance();32 33 // Now we have two variables, but both should refer to the same object34 // Let's prove this, by setting a value using one variable, and 35 // (hopefully!) retrieving the same value using the second variable36 FirstSingleton.SetX(4);37 Console.WriteLine("Using first variable for singleton, set x to 4"); 38 39 val = SecondSingleton.GetX();40 Console.WriteLine("Using second variable for singleton, value retrieved = {0}", val); 41 return 0;42 }43 }
单例模式

 

转载于:https://www.cnblogs.com/ziranquliu/p/4647275.html

你可能感兴趣的文章
Codeforces Round #369 (Div. 2) A. Bus to Udayland 水题
查看>>
C#预处理器指令【转】
查看>>
adb上使用cp/mv命令的替代方法(failed on '***' - Cross-device link解决方法)
查看>>
C++标准库简介、与STL的关系。
查看>>
Spring Boot 3 Hibernate
查看>>
查询EBS请求日志的位置和名称
查看>>
大型机、小型机、x86服务器的区别
查看>>
JVM调优总结:调优方法
查看>>
J2EE十三个规范小结
查看>>
算法(第四版)C#题解——2.1
查看>>
网关支付、银联代扣通道、快捷支付、银行卡支付分别是怎么样进行支付的?...
查看>>
大数据开发实战:Stream SQL实时开发一
查看>>
C++返回引用的函数例程
查看>>
C语言可变参数,参数传递
查看>>
你若安好便是晴天_百度百科
查看>>
Linux iptables 开放Mysql端口允许远程访问
查看>>
Mathematica 汉化教程
查看>>
JQuery EasyUI 读取设置input
查看>>
详解Java解析XML的四种方法(转载)
查看>>
32位系统win2008+mssql2008 6G内存折腾纪实
查看>>