Repositório contém os conteúdos da Alura sobre Boas Práticas com C#.
Implementado exemplo dos padrões:
-
Builder => Classes que simplificam a criação de objetos complexos, a implementa métodos que populam as informações do objeto complexo e também um método que retorna o objeto complexo.
-
Chain of Responsability => Interface com Métodos que define uma responsabilidade, as classes que a implementam verificar se as responsabilidade condiz à ela ou se deve encaminhar para outra classe.
-
Decorator => Composição de métodos através de classes abstratas que auxilia na composição de resultados entre instancias diferentes.
-
Observer => Implementação de uma interface que é herdada por classes que implementam uma rotina que deve ser executada em dada mudança de estado da classe pai, a classe pai por vez tem uma propriedade com todas as ações e também tem uma iteração executando as ações que compõem o Observer.
-
State => Implementação de uma interface genérica para a definição de estados de uma classe pai, com ela é possível executar tarefas de maneiras específicas para cada estado que implementa a interface.
-
Strategy => Interfaces com Métodos que devem ser implementados pelos classes, permitindo que a chamada seja genérica e alterada em tempo de execução.
-
Template Method => Classes abstratas que tem parte da implementação comum e tem lacunas de implementação para ser feito pelas classes concretas...
-
Factory => Classe que simplifica a criação de objetos, ele é muito parecido com o Pattern Builder porém a diferença entre eles é que o Factory utiliza sempre os mesmos parâmetros para a instanciar o objeto.
-
Flyweight => Classe que implementa uma maneira para evitar que o mesmo objeto seja instânciado diversas vezes.
-
Memento => Estrutura de classes que implementa um histórico navegavel (lista) de um objeto em específico para que estados anteriores possam ser acessados. O Memento cria uma padronização no armazenamento de estados de objetos.
-
Interpreter => Estrutura de classes que implementa um interpretador de expressões.
-
Visitor => Uma classe de visitantes que altera o algoritmo de execução de uma classe de elemento.
Exemplos Implementados:
Parte 1
- Builder Pattern
- Chain of Responsability Pattern
- Decorator Pattern
- Observer Pattern
- State Pattern
- Strategy Pattern
- Template Pattern
Parte 2