SóProvas


ID
2821579
Banca
COMPERVE
Órgão
UFRN
Ano
2018
Provas
Disciplina
Arquitetura de Software
Assuntos

Para responder a questão considere a definição abaixo.

Padrão de projeto é uma técnica que permite reutilizar em seu projeto soluções utilizadas anteriormente em outros sistemas.

Considere as seguintes afirmativas a respeito do padrão Singleton.


I O padrão Singleton pode ser usado para determinar uma quantidade fixa de instâncias de uma classe que podem ser criadas em uma aplicação.

II A classe que implementa o padrão Singleton deve manter público seus construtores.

III A implementação comum do padrão Singleton funciona em ambientes multi-threads.

IV O padrão Singleton é implementado através de atributos e métodos estáticos na classe onde é aplicado.


Estão corretas as afirmativas

Alternativas
Comentários
  • Singleton: garante que uma classe tenha apenas uma instância e provê um ponto de cesso global a ela.

    Segundo a definição de singleton, a afirmativa I não deveria ser errada? Ela fala em "quantidade fixa de instâncias".


    Outra coisa. Não funciona em ambiente multi multi-threads?


  • Daniel,

    quanto à alternativa I, é estranho que esteja correta. No apêndice 3 do livro Engenharia de Software, de Roger Pressman, há a definição do termo singleton:

    {x} Conjunto único (singleton): contém apenas x

    Leia um resumo sobre problemas e soluções em ambiente multithreaded. Páginas 52 a 58:

    http://www.inf.ufpr.br/andrey/ci163/Design_Patterns.pdf

  • A quantidade fixa de instâncias é 1.

    Foi esse o meu entendimento.

  • Não marquei a A por achar que a quantidade sempre será uma instância.

  • percebi que a banca é porcaria ao ver que apenas a IV estava correta, e vendo que a II estava completamente errada então tive que engolir a seco e aceitar que a banca considera a I correta

    Se o teu Singleton tem controle de quantidade de instâncias, então ele está fora do pattern.

    Singleton tem apenas uma, isso é o pattern, por isso colocaram a palavra SINGLE no nome.

  • Daniel, em ambiente multi-threads pode haver problemas.

  • fazer singleton não é fácil.

    em ambiente multi-thread ainda é mais complicado ainda

    Por isso a gente delega pro container, @Singleton e usa o IoC pra isso

    É um detalhe que eu jamais achei que cairia em concurso e caiu

    Questão beeeemmm complicada!

    Esse examinador sabe o que ele está falando!

    Esse aí já programou na vida