Skip to content

rafaroseira/BCC3004-patterns

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Padrão Singleton

O padrão singleton é um padrão criacional que garante que uma classe tenha apenas uma instância e fornece um ponto global de acesso a essa instância. Este padrão é útil quando exatamente um objeto é necessário para coordenar ações em todo o sistema. Uma aplicação útil do singleton é quando se faz necessária a conexão com um banco de dados, já que não há a necessidade de haver múltiplas conexões simultâneas.

O construtor é privado porque evita que a classe seja instanciada fora dela. Assim, para podermos instanciar ou acessar uma instância da classe cria-se um atributo público e estático da classe que retorna através de um método estático getInstance() uma única instância dessa classe. Caso a classe já tenha sido instanciada, retorna-se a única instância já criada; caso não, cria-se uma nova.

Padrão Visitor

O padrão visitor é um padrão comportamental que permite adicionar novas operações a uma estrutura de objetos sem modificar as classes dos elementos dessa estrutura. No exemplo do padrão visitor, estamos calculando a área e perímetro de figuras sem alterar as classes concretas que implementam estas figuras.

No exemplo do padrão visitor, há dois tipos de interface: Visitable (visitáveis) e Visitor (visitante). Visitable possui um caráter passivo, ou seja, apenas aceitará (accept) os visitantes, enquanto que Visitor possui caráter ativo, ou seja, visitará (visit) um visitável. Circle e Rectangle são exemplos de Visitable que implementam o método accept. Por outro lado, as operações em si, fazem parte dos visitantes e são representados por AreaVisitor e PerimeterVisitor.

Padrão Adapter

O padrão adapter é um padrão estrutural que funciona como conector de duas interfaces incompatíveis que não podem ser conectadas diretamente. A principal ideia do padrão é converter uma interface existente em outra interface que o cliente espera.

No exemplo do padrão adapter, a aplicação é responsável por retornar a velocidade máxima de um carro em milhas por hora. No entanto, há certos países que não é comum o uso dessa unidade imperial; adota-se, na verdade, uma unidade métrica, o kilometro por hora. Portanto, para essa aplicação se faz útil um adaptador de MPH para KMH.

A interface Carro retorna a velocidade máxima em MPH e a classe Golf implementa Carro e retorna a velocidade máxima hipotética de um Volkswagen Golf em MPH. CarroAdapter é a interface que retorna a velocidade em KMH e CarroAdapterImpl é a implementação da interface, a qual contém um método MPHtoKPH (conversão). Dessa forma, podemos instanciar um Golf e um CarroAdapter, e, ao usar o método getVelocidade() de CarroAdapter, teremos a velocidade convertida para KMH.

Nota: Todos os exemplos possuem diagramas de classes em suas respectivas pastas.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages