Orientação a Objetos - Classe Singleton

Nesta aula iremos aprender o que é uma classe singleton, como criar e utilizar esta classe em C#.

assinaturaAssine nossa Comunidade

POO - Classe Singleton

Classe Singleton possui somente uma instaância para toda a aplicação.

Para criar uma classe Singleton no C# , devemos criar a classe com um construtor privado.Dessa forma não será possível riar uma instância da classe.

      
        namespace console_app.Classes
        {
          public class Email
          {
            
            private Email(){}

          }

        } 
       
     

Se tentarmos criar uma instância da classe Email,ocorre erro:

      
        namespace console_app  
        {
          class Program 
          {
            static void Main(string[] args)
            {
            Email email = new Email(); //Erro:Email() is inaccessible due to its protection level.
            }
          }
        }
       
    

Para termos uma classe Singleton no C# , devemos criar:

  • um construtor como private;
  • um atributo como static;
  • a propriedade GET do atributo como public;
  • uma instância de email na propriedade GET;
  • propriedades públicas que serão acessadas pela instância ;
     
       namespace console_app.Classes
       {
         public class Email
         {
           
           private Email(){}

           private static Email instancia;
           Public string Origem;
           Public string Destino;
           Public string Titulo;
           Public string Corpo;

           public Email Instancia
           {
             get
             {
              if (instancia == null)
              {
                instancia = new Email();
              }
              return instancia;
             }
             
           }

           public static void EnviarEmail() 
           {
             Console.WriteLine("Enviando email para:" + Destino + "\com o titulo: " + Titulo +  "\nCorpo: " + Corpo);
           }

         }

       } 
      
    

Ao chamar a classe Email no programa principal(main), podemos acessar os atributos através da instancia criada dentro da classe Email:

      
        namespace console_app  
        {
          class Program 
          {
            static void Main(string[] args)
            {
             Email.Instancia.Corpo = "bla bla bla";
              Email.Instancia.Titulo = "Titulo do Email";
              Email.Instancia.Origem = "danilo@beminfinito.com.br";
              Email.Instancia.Destino = "danilo@beminfinito.com.br";

              Email.Instancia.EnviarEmail();

            }
          }
        }
       
    

Orientação a Objetos - Classe Singleton

Nesta aula iremos aprender o que é uma classe singleton, como criar e utilizar esta classe em C#.

Próximas Aulas:
assinaturaAssine nossa Comunidade

POO - Classe Singleton

Classe Singleton possui somente uma instaância para toda a aplicação.

Para criar uma classe Singleton no C# , devemos criar a classe com um construtor privado.Dessa forma não será possível riar uma instância da classe.

      
        namespace console_app.Classes
        {
          public class Email
          {
            
            private Email(){}

          }

        } 
       
     

Se tentarmos criar uma instância da classe Email,ocorre erro:

      
        namespace console_app  
        {
          class Program 
          {
            static void Main(string[] args)
            {
            Email email = new Email(); //Erro:Email() is inaccessible due to its protection level.
            }
          }
        }
       
    

Para termos uma classe Singleton no C# , devemos criar:

  • um construtor como private;
  • um atributo como static;
  • a propriedade GET do atributo como public;
  • uma instância de email na propriedade GET;
  • propriedades públicas que serão acessadas pela instância ;
     
       namespace console_app.Classes
       {
         public class Email
         {
           
           private Email(){}

           private static Email instancia;
           Public string Origem;
           Public string Destino;
           Public string Titulo;
           Public string Corpo;

           public Email Instancia
           {
             get
             {
              if (instancia == null)
              {
                instancia = new Email();
              }
              return instancia;
             }
             
           }

           public static void EnviarEmail() 
           {
             Console.WriteLine("Enviando email para:" + Destino + "\com o titulo: " + Titulo +  "\nCorpo: " + Corpo);
           }

         }

       } 
      
    

Ao chamar a classe Email no programa principal(main), podemos acessar os atributos através da instancia criada dentro da classe Email:

      
        namespace console_app  
        {
          class Program 
          {
            static void Main(string[] args)
            {
             Email.Instancia.Corpo = "bla bla bla";
              Email.Instancia.Titulo = "Titulo do Email";
              Email.Instancia.Origem = "danilo@beminfinito.com.br";
              Email.Instancia.Destino = "danilo@beminfinito.com.br";

              Email.Instancia.EnviarEmail();

            }
          }
        }