Acerca de padrões de projeto, JSE e JME, julgue o item a seg...

Próximas questões
Com base no mesmo assunto
Q869341 Arquitetura de Software

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.

Alternativas

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