Prévia do material em texto
O padrão Bridger é um Padrão Estrutural GoF. Com relação aos seus objetivos podemos afirmar que (assinale a opção INCORRAETA). Imagine que em meu sistema eu tenha uma classe compra, que para fazer o pagamento, utiliza o método Billing, e que esse método espera algo que herde de uma interface IPagamento. Cartão de crédito é uma classe abstrata que herda de IPagamento. Boleto é uma classe que herda de IPagamento. Visa e master são as implementações reais que utilizávamos, até então, para fazer o Billing dependendo do cartão que o cliente utilizava, e a propósito, elas herdam de CartaodeCredito. Segue o diagrama: Porém, a loja decide que vai ter mais um tipo de cartão de crédito, terá o ¿Sorocred¿. O Analista logo pensa: ¿Tudo bem, é só eu herdar de CartaodeCredito, implementar a forma específica de Billing e pronto! ¿. 1. O padrão Bridge desacopla uma abstração de sua implementação para que os dois possam variar independentemente; O padrão Bridge é usado quando for necessário evitar uma ligação permanente entre a interface e implementação; No padrão Bridge a solução natural quando se pretende desenvolver uma determinada solução para duas plataformas diferentes é utilizar herança, implementando uma classe derivada para cada situação; O padrão Bridge permiti que o sistema consiga se adaptar dinamicamente a diferentes plataformas é mais desejável ainda; O padrão Bridge converte a interface de uma classe em outra interface esperada pelos clientes; Explicação: Essa afirmativa está INCORRETA, porque ela se refere ao padrão Adapter. 2. Só que vem a surpresa: o cliente tem a própria Dll de Billing, que não pode ser alterada, ou pior: a estrutura de classe de ¿Sorocred¿ foi desenhada da seguinte maneira: Com qual padrão GOF, você resolverá o problema? Assinale a alternativa correspondente ao padrão de projeto utilizado para adicionar responsabilidades dinâmicas a objetos. State Adapter Singleton Strategy Façade Explicação: Há três grupos de Padrões GoF: Padrões de Criação, Padrões Estruturais e Padrões Comportamentais. Os Padrões Estruturais GoF contemplam 7 (sete) tipos de padrões: Adapter, Bridge, Composite, Decorator, Façade, Flyweight e Proxy. Definem caminhos comuns para a organização de diferentes tipos de objetos, facilitando sua integração e colaboração mutua. O padrão Adpater é bastante utilizado para compatibilizar classes implementadas por programadores diferentes, ou desenvolvidas em momentos diferentes, ou ainda para unir classes com interfaces diferentes em uma estrutura hierárquica única, sem precisar implementar novamente todas as funcionalidades e interfaces da classe já existente. A idéia é criar uma nova classe (Adapter) com a interface padrão que se deseja para fazer a conexão com a classe já existente (Adapter) com interface diferente da estrutura de classes que se pretende utilizar no sistema. 3. Decorator Façade Adapter Bridge Composite Programadores se deparam muitas vezes com a situação onde é preciso acrescentar responsabilidades a objetos e não a classe. Uma das opções é utilizar herança, entretanto, esta alternativa é estática. Outra alternativa é especificar uma nova classe para implementar cada responsabilidade que se deseja atribuir dinamicamente a um dado objeto. Esta nova classe se chama _____________________________. (FUNCAB - 2010) Segundo Trott e Shalloway, o princípio de projetar a partir de um contexto, é um conceito para criar a visão global antes de se projetar os detalhes que aparecem nos componentes. Das opções seguintes, o padrão de projeto que é um melhor exemplo de aplicação desse princípio é: A classe java.util.Map da API de coleções de Java permite que sejam armazenados pares de objetos (chave e valor) em uma de suas implementações (as mais conhecidas são HashMap e TreeMap). No entanto, estas classes não possuem um construtor que receba como parâmetro uma matriz de duas linhas e que monte o mapa usando a primeira linha como chave e a segunda como coluna. Qual padrão utilizar para resolver o problema acima? 4. Adapter; Associativa; Beidge; Decorator; Composite; 5. faça de canvas adapter abstract factory bridge Explicação: Há três grupos de Padrões GoF: Padrões de Criação, Padrões Estruturais e Padrões Comportamentais. Os Padrões Estruturais GoF contemplam 7 (sete) tipos de padrões: Adapter, Bridge, Composite, Decorator, Façade, Flyweight e Proxy. Definem caminhos comuns para a organização de diferentes tipos de objetos, facilitando sua integração e colaboração mutua. O padrão Bridge, desacopla uma abstração de sua implementação, de tal forma que os dois possam variar independentemente. 6. Chain of Responsibility Adapter Interpreter Observer Iterator Marque a alternativa que melhor descreve uma situação típica onde poderia ser utilizado o padrão de projeto Adapter? Um compositor musical deseja criar uma hierarquia de classes para representar a estrutura das suas notas musicais. Em primeiro lugar, definiu uma classe abstrata chamada Melodia, a seguir, criou duas classes derivadas, uma chamada Nota e outra chamada Partitura. Cada Nota musical representa o elemento mínimo de uma Melodia e cada Partitura é formada por uma ou mais notas. Marque a alternativa que representa o melhor padrão de projeto para modelar este problema. Explicação: Os Padrões Estruturais GoF contemplam 7 (sete) tipos de padrões: Adapter, Bridge, Composite, Decorator, Façade, Flyweight e Proxy. Definem caminhos comuns para a organização de diferentes tipos de objetos, facilitando sua integração e colaboração mutua. Os Padrões Estruturais tratam da composição de classes e objetos para formar estruturas complexas; associados à maneira como classes e objetos são organizados estruturalmente; oferecem formas efetivas para usar conceitos OO como herança e composição, e são abstrações de aspectos estruturais. O padrão Adpater é bastante utilizado para compatibilizar classes implementadas por programadores diferentes, ou desenvolvidas em momentos diferentes, ou ainda para unir classes com interfaces diferentes em uma estrutura hierárquica única, sem precisar implementar novamente todas as funcionalidades e interfaces da classe já existente. A idéia é criar uma nova classe (Adapter) com a interface padrão que se deseja para fazer a conexão com a classe já existente (Adapter) com interface diferente da estrutura de classes que se pretende utilizar no sistema. Além de reaproveitar totalmente a classe antiga sem precisar alterar o código e entender a complexa implementação realizada, mantém a uniformidade do seu projeto original. 7. Um programador precisar utilizar uma classe que possui interface diferente da classe existente na aplicação. Um programador precisa ser avisado quando houver alterações no estado de um objeto. Um programador precisa de um método que simplifique o acesso a uma hierarquia de classes. Um programador precisa de uma classe que possua um método para retornar a única instância existente da classe. Um programador precisa utilizar uma classe que possui a mesma interface da classe existente na aplicação. 8. Proxy Bridge Adapter Composite Façade