Junior — Middle
Explique as diferenças entre os padrões Singleton e Prototype no contexto de escopo e uso de objetos.
sobes.tech IA
Resposta da IA
O padrão Singleton garante que exista apenas uma instância de uma classe na aplicação, acessível globalmente. O âmbito do objeto é global, e todos os clientes trabalham com o mesmo objeto. Isto é útil para gerir recursos comuns, como configurações ou pools de conexões.
O padrão Prototype envolve criar novos objetos clonando um protótipo existente. Cada chamada cria uma nova instância independente. O âmbito é local para cada objeto criado, permitindo ter múltiplos objetos semelhantes, mas independentes.
Exemplo em Java:
// Singleton
public class Singleton {
private static Singleton instance;
private Singleton() {}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
// Prototype
public class Prototype implements Cloneable {
private int value;
public Prototype(int value) { this.value = value; }
public Prototype clone() throws CloneNotSupportedException {
return (Prototype) super.clone();
}
}
Assim, Singleton é um objeto único em toda a aplicação, Prototype são múltiplos objetos criados a partir de um modelo.