• Sigleton模式简单实例


     1 ///<summary>
    2 /// Sigleton模式简单实例
    3 ///</summary>
    4 class Program
    5 {
    6 staticvoid Main(string[] args)
    7 {
    8 string _title;
    9 //调用者不可以通过new的形式得到Singleton的实例
    10 LogWriter log = LogWriter.GetInstance();
    11 log.ddd();
    12 //调用LogWriter中的静态字段(外部类的类类型,只能通过类型访问而不能通过实例访问)
    13 _title = LogWriter._boss.Title;
    14 LogWriter._boss.SayHi();
    15 Console.WriteLine(_title);
    16 Console.ReadLine();
    17 }
    18 #region LogWriter描述
    19 publicclass LogWriter
    20 {
    21 //声明一个静态变量,类型为类本身
    22 privatestatic LogWriter _instance =null;
    23 //声明一个静态变量,类型为一外部类
    24 publicstatic Boss _boss =new Boss();//注意此处必须初始化,否则,调用会报错:{未将引用添加到实例}
    25 //将类的构造函数私有化,使得这个类不可以被外界创建
    26 private LogWriter()
    27 {
    28 }
    29 //提供静态的方法创建类的实例
    30 publicstatic LogWriter GetInstance()
    31 {
    32 if(_instance ==null)
    33 {
    34 _instance =new LogWriter();
    35 }
    36 return _instance;
    37 }
    38 publicvoid ddd()
    39 {
    40 Console.WriteLine("hi!");
    41 }
    42 }
    43 #endregion
    44
    45 #region Boss描述
    46 publicclass Boss
    47 {
    48 privatestring _Title;
    49
    50 publicstring Title
    51 {
    52 get { return _Title; }
    53 set { _Title = value; }
    54 }
    55
    56 public Boss()
    57 {
    58 this._Title ="Lucky";
    59 }
    60 publicvoid SayHi()
    61 {
    62 Console.WriteLine("Hello,World!");
    63 }
    64 }
    65 #endregion
    66 }
  • 相关阅读:
    Python3---filter,map,reduce
    老男孩-day2作业-计算器
    Python 简易购物系统--老男孩作业
    老男孩-day1作业二
    老男孩-day1作业一
    Axure8.0图片旋转注意
    CentOS6.5部署KVM及实现在线迁移
    CentOS 6.5 安装部署iSCSi共享存储
    CentOS 6.5 安装部署KVM
    CentOS6.5部署L2TP over IPSec
  • 原文地址:https://www.cnblogs.com/lucky_hu/p/2119431.html
Copyright © 2020-2023  润新知