Patterns: Creational: Singleton

 

 

Dashboard Class

using System;
using System.Collections.Generic;
using System.Text;

namespace Singleton
{
    public class Dashboard
    {
        private static Dashboard _instance;
        private string _name = "Dashboard._name";
        public string GetName() => _name;

        public static Dashboard Instance
        {
            get
            {
                if (_instance == null)
                {
                    _instance = new Dashboard();
                }
                return _instance;
            }
        }


        public void SetDashName(string name)
        {
            _name = name;
        }

        public string GetDashName()
        {
            return _name;
        }

    }
}

 

Test Class & Method

 

using Microsoft.VisualStudio.TestTools.UnitTesting;
using Singleton;
using System;

namespace SingletonTestsCore
{
    [TestClass]
    public class UnitTest1
    {
        [TestMethod]
        public void TestMethod1()
        {
            Assert.AreSame(Dashboard.Instance, Dashboard.Instance);
            Console.WriteLine($"Dashboard.Instance.GetName(): {Dashboard.Instance.GetName()}");
            Dashboard.Instance.SetDashName("NewDashName");
            Console.WriteLine($"Instance.GetDashName: {Dashboard.Instance.GetDashName()}");
            Console.WriteLine($"Instance.GetName: {Dashboard.Instance.GetName()}");
        }
    }
}