Acerca de padrões de projeto, JSE e JME, julgue o item a seg...
Acerca de padrões de projeto, JSE e JME, julgue o item a seguir.
Considere que determinado sistema tenha apresentado
problemas de uso excessivo de recursos de armazenamento na
criação de múltiplas instâncias de objetos. Nesse caso, o
padrão Adapter é mais apropriado que o padrão Flyweight
para se resolver o problema.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: E - Errado
Vamos compreender o motivo pelo qual a alternativa é incorreta. O cenário descrito na questão menciona um sistema que está enfrentando problemas com o uso excessivo de recursos de armazenamento devido à criação de múltiplas instâncias de objetos. Para resolver essa questão, precisamos entender a finalidade dos padrões de projeto mencionados.
O padrão Flyweight é um padrão estrutural que tem como objetivo reduzir o uso de memória compartilhando o máximo possível de informação entre objetos similares. Ele é perfeito para situações onde um sistema precisa criar um grande número de objetos similares e pode economizar uma quantidade significativa de memória ao compartilhar partes do estado do objeto entre várias instâncias.
Por outro lado, o padrão Adapter é um padrão estrutural que tem como finalidade permitir que interfaces incompatíveis trabalhem em conjunto. O objetivo principal do Adapter é permitir que um objeto seja substituído por outro com uma interface diferente, proporcionando uma forma de cooperação entre classes que não poderiam trabalhar juntas de outra maneira.
Dessa forma, é claro que o padrão adequado para o problema de uso excessivo de recursos de armazenamento causado pela criação de múltiplas instâncias de objetos é o padrão Flyweight, e não o Adapter. O padrão Flyweight permite o compartilhamento de estados intrínsecos entre objetos, o que pode resultar em uma redução significativa no uso da memória, enquanto o padrão Adapter lida com a adaptação entre interfaces e não com a economia de memória por meio do compartilhamento de estados.
Portanto, ao entender a finalidade de cada padrão, fica evidente que a utilização do padrão Flyweight é a resposta correta para o problema apresentado, tornando a afirmativa da questão errada.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
GABARITO: ERRADO
Flyweight é um padrão de projeto de software apropriado quando vários objetos devem ser manipulados em memória sendo que muitos deles possuem informações repetidas. Dado que o recurso de memória é limitado, é possível segregar a informação repetida em um objeto adicional que atenda as características de imutabilidade e comparabilidade (que consiga ser comparado com outro objeto para determinar se ambos carregam a mesma informação).
Fonte: https://pt.wikipedia.org/wiki/Flyweight
Flyweight é aplicado quando todas as seguintes condições forem verdadeiras:
---> Uma aplicação utiliza um grande número de objetos;
---> O custo de armazenamento são altos por causa da grande quantidade de objetos;
---> A maioria dos estadoss de objetos pode ser tornada extrínseca;
---> Muitos grupos de objetos podem ser substituídos por relativamente poucos objetos compartilhados;
---> A aplicação não depende da identidade dos objetos.
(Fonte: Gamma)
Att,
Foco na missão!!!
"uso excessivo de recursos" => Flyweight = "peso mosca".
Flyweight - Compartilhamento de grandes quantidades de objetos em memória.
e-
flyweight é para grande volume de objetos, poupando espaço pela distribuição de estados comuns entre objetos.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo