DEV Community

Cover image for Enum Fábrica Solitão em Java
Antonio Serra
Antonio Serra

Posted on • Edited on

Enum Fábrica Solitão em Java

Neste artigo, vamos explorar o conceito de Enumerados, Fábrica e Solitão em Java, apresentando exemplos práticos de como implementá-los.

Enum
Enumerados em Java são tipos de dados que consistem em um conjunto fixo de valores pré-definidos. Eles fornecem uma maneira conveniente de representar um conjunto limitado de opções. Vejamos um exemplo de como declarar e usar enumerados em Java:

public enum DiaDaSemana { SEGUNDA, TERCA, QUARTA, QUINTA, SEXTA, SABADO, DOMINGO; } public class Main { public static void main(String[] args) { DiaDaSemana dia = DiaDaSemana.SEGUNDA; System.out.println("Hoje é " + dia); } } 
Enter fullscreen mode Exit fullscreen mode


Neste exemplo, declaramos um enumerado DiaDaSemana que representa os dias da semana. Em seguida, criamos uma variável dia do tipo DiaDaSemana e atribuímos o valor SEGUNDA. Por fim, imprimimos "Hoje é SEGUNDA" na saída.

Fábrica
Uma Fábrica em Java é um padrão de projeto que encapsula a criação de objetos. Ela fornece um método centralizado para criar instâncias de uma classe, permitindo maior flexibilidade e controle sobre o processo de criação. Vejamos um exemplo de como implementar uma fábrica em Java:

public interface Forma { void desenhar(); } public class Circulo implements Forma { @Override public void desenhar() { System.out.println("Desenhando um círculo."); } } public class Quadrado implements Forma { @Override public void desenhar() { System.out.println("Desenhando um quadrado."); } } public class FabricaFormas { public static Forma criarForma(String tipo) { if (tipo.equalsIgnoreCase("circulo")) { return new Circulo(); } else if (tipo.equalsIgnoreCase("quadrado")) { return new Quadrado(); } else { throw new IllegalArgumentException("Tipo de forma inválido."); } } } public class Main { public static void main(String[] args) { Forma forma1 = FabricaFormas.criarForma("circulo"); Forma forma2 = FabricaFormas.criarForma("quadrado"); forma1.desenhar(); forma2.desenhar(); } } 
Enter fullscreen mode Exit fullscreen mode


Neste exemplo, temos uma interface Forma que define o método desenhar(). Em seguida, implementamos as classes Circulo e Quadrado, que implementam a interface Forma e definem sua própria implementação do método desenhar(). A classe FabricaFormas é responsável por criar instâncias das formas com base em um tipo fornecido. Por fim, no método main(), utilizamos a fábrica para criar uma instância de um círculo e uma instância de um quadrado, e chamamos o método desenhar() em cada uma delas.

Solitão
O Solitão em Java é um padrão de projeto usado quando queremos restringir a criação de instâncias de uma classe a apenas uma única instância. Isso pode ser útil em cenários em que precisamos controlar o acesso a recursos compartilhados ou quando desejamos garantir que apenas uma instância de uma classe seja criada. Vejamos um exemplo de como implementar o Solitão em Java:

public class Configuracao { private static Configuracao instancia; private String nome; private Configuracao() { this.nome = "Configuração padrão"; } public static Configuracao getInstance() { if (instancia == null) { instancia = new Configuracao(); } return instancia; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } } public class Main { public static void main(String[] args) { Configuracao config = Configuracao.getInstance(); System.out.println("Configuração: " + config.getNome()); Configuracao config2 = Configuracao.getInstance(); config2.setNome("Nova configuração"); System.out.println("Configuração: " + config.getNome()); System.out.println("Configuração 2: " + config2.getNome()); } } 
Enter fullscreen mode Exit fullscreen mode


Neste exemplo, a classe Configuracao implementa o padrão Solitão. A instância única da classe é armazenada em uma variável estática instancia e é acessada através do método estático getInstance(). A classe Main demonstra como obter a instância única da classe e como alterar seu estado.
Espero que este artigo tenha fornecido uma visão geral dos conceitos de Enumerados, Fábrica e Solitão em Java, juntamente com exemplos práticos de implementação. Agora você está pronto para aplicar esses padrões em suas próprias aplicações Java!

Linkedin: https://www.linkedin.com/in/antonio-rodrigo-wanderley-serra/
GitHub: https://github.com/antoniorws

Top comments (0)