zoukankan      html  css  js  c++  java
  • 步步为营-07-设计模式-单例

    下面主要学习一下单例设计模式 

    首先,先看一个现象,当用户点击"登录"按钮,会弹出"登录对话框",但是当用户多次点击时,会new很多对话框.所以我们需要对代码进行改造

    1.1 构造函数私有化

     private Login()

    1.2 声明静态字段

     public static Login _single;

    1.3 通过静态函数返回全局唯一对象

     public static Login GetLogin()
            {
                if (_single == null)
                {
                    _single = new Login();
                }
                return _single;
            }

    1.4 调用处直接调用GetLogin方法

     private void btnLogn_Click(object sender, EventArgs e)
            {
                Login login = Login.GetLogin();
                login.Show();
            }

    具体代码

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace Singleton
    {
        public partial class Login : Form
        {
            //1构造函数私有化
            private Login()
            {
                InitializeComponent();
            }
            //2 声明静态字段
            public static Login _single;
            //3  通过一个静态函数返回一个全局唯一的对象
            public static Login GetLogin() 
            {
                if (_single == null)
                {
                    _single = new Login();
                }
                return _single;
            }
        }
    }
    Login
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace Singleton
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void btnLogn_Click(object sender, EventArgs e)
            {
                Login login = Login.GetLogin();
                login.Show();
            }
        }
    }
    Form1
  • 相关阅读:
    模拟费用流学习笔记
    爬山游记
    基数排序板子
    webim
    centos9 重启网络
    Linux虚拟机桥接模式下ping不通自己配置的网关
    win7怎样开启loopback接口(环回网卡)
    在CentOS上配置SAMBA共享目录
    linux间scp拷贝文件夹
    nginx配置http和https可同时访问方法
  • 原文地址:https://www.cnblogs.com/YK2012/p/6707558.html
Copyright © 2011-2022 走看看