Singleton Design Pattern

Jack Herer 110 Reputation points
2023-04-18T15:32:35.2366667+00:00

Hey, can somebody give me an example of singleton design pattern? Much apriciated...

Developer technologies | .NET | Other
Developer technologies | C#
0 comments No comments
{count} votes

Accepted answer
  1. Rajkamal Gupta 225 Reputation points
    2023-04-18T15:33:33.34+00:00

    I think, you're looking for something like this..

        internal class Program
        {
            static TableServers host1List = TableServers.GetTableServers();
            static TableServers host2List = TableServers.GetTableServers();
    
            static void Main(string[] args)
            {
                TableServers servers = TableServers.GetTableServers();
    
                for (int i = 0; i < 5; i++)
                {
                    Host1GetNextServer();
                    Host2GetNextServer();
                }
    
                Console.ReadKey();
            }
    
            private static void Host1GetNextServer()
            {
                Console.Write("Next server is: ");
                Console.WriteLine(host1List.GetNextServer());
            }
    
            private static void Host2GetNextServer()
            {
                Console.Write("Next server is: ");
                Console.WriteLine(host2List.GetNextServer());
            }
        }
    
        // singleton class
        internal class TableServers
        {
            // singleton must have private readonly instance
            private static readonly TableServers _instance = new();
            private List<string> servers = new();
            public int nextServer = 0;
    
            private TableServers()
            {
                servers.Add("Hozna");
                servers.Add("Pepa");
                servers.Add("Jana");
                servers.Add("Kate");
            }
    
            // this method returns the instance
            public static TableServers GetTableServers()
            {
                return _instance;
            }
    
            public string GetNextServer()
            {
                string result = servers[nextServer];
    
                nextServer += 1;
    
                if (nextServer >= servers.Count)
                {
                    nextServer = 0;
                }
                return result;
            }
        }
    
    0 comments No comments

0 additional answers

Sort by: Most helpful

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.