Pular para o conteúdo principal

Postagens

Mostrando postagens com o rótulo design

C# - Design Patterns - Template Method

Olá! Seguindo a proposta de padrões de projeto com C#, falaremos hoje sobre o padrão comportamental Template Method.  Para ver outros padrões que já visitamos por aqui consulte esse link . Esse tema foi tratado de forma brilhante  aqui . Template Method Como dito anteriormente ele é um padrão comportamental que define etapas a serem seguidas, ou seja, com esse padrão podemos determinar etapas e a sequencia de execução delas, deixando a cargo de quem está implementantado como será a implementação dessas etapas. E que vantagem Maria leva? Bom, o grande diferencial aqui é poder ter um contrato que não só define o que deve ser feito mas também garante a sequencia a ser seguida, processos que seguem o mesmo roteiro porém de diferentes formas podem se beneficiar desse padrão: Frameworks fornecem métodos abstratos ou hooks para as subclasses personalizarem o comportamento; Algoritmos que têm uma estrutura comum mas detalhes diferentes, como ordenação, compilação ou  mesmo criptografia; Classe

C# - Design Patterns - Chain of Responsibility

Olá a  todos! Seguindo a proposta de padrões de projeto com C#, falaremos hoje sobre o padrão comportamental  Chain of Responsibility . Para ver outros padrões que já visitamos por aqui consulte esse link . Esse tema foi tratado de forma brilhante  aqui . Chain of Responsibility O padrão de projeto Chain of Responsibility é um padrão de design comportamental que permite passar uma solicitação ao longo de uma cadeia de objetos até que um deles a trate. Cada objeto na cadeia tem a chance de tratar a solicitação. É útil quando há múltiplos objetos que podem responder a uma solicitação e você não sabe antecipadamente qual objeto será o responsável. No C#, a implementação deste padrão envolve a definição de uma interface para as solicitações, criação de classes concretas para tratar as solicitações e definição de uma lógica de encadeamento entre essas classes. Ao receber uma solicitação, cada objeto na cadeia verifica se pode tratá-la e, se não puder,

C# - Design Patterns - Strategy

Olá! Seguindo a proposta de padrões de projeto com C#, falaremos hoje sobre o padrão comportamental Strategy. Para ver outros padrões que já visitamos por aqui consulte esse link . Esse tema foi tratado de forma brilhante aqui . Introdução É muito comum no dia dia nos depararmos com necessidades que executam ações de formas diferentes, ou seja, apesar do trabalho ser o mesmo a forma de execução é distinta, exemplos clássicos são a cobrança de impostos (ICMS e ISS são impostos porém cada um tem seu próprio cálculo), cálculos de descontos entre outros.  Nos exemplos citados anteriormente o que temos é uma mesma tarefa que, em determinado fluxo da aplicação deverá ter um comportamento com um resultado e em outro fluxo teremos comportamentos e resultados diferentes. Uma situação muito comum é simplesmente separar o fluxo em "ifs" e em cada bloco codificar o que precisamos, no exemplo dos impostos bastaria um:  if (

C# - Design Patterns

Olá meus queridos! Hoje daremos inicio a uma série de postagens falando sobre Design Patterns e utilizaremos o C# para demonstra-los. Essa (e as próximas postagens) são uma iniciativa após o meu ingresso nos excelentes cursos da Alura sobre essa temática, porém lá a linguagem utilizada é Java. Minha intenção aqui é passar por cada padrão mostrando na prática como resolver problemas cotidianos que já foram pensados e resolvidos. Mas do que se trata "Design Patterns"? Segundo a Wikipédia "padrão de projeto (do inglês design pattern) é uma solução geral para um problema que ocorre com frequência dentro de um determinado contexto no projeto de software", ou seja, para a maioria dos "problemas" mais comuns que enfrentamos no dia a dia já existem soluções propostas, testadas e amplamente utilizadas. Desse modo evitamos "reinventar" a roda para problemas comuns e melhor, escrevemos código padronizado que qualquer pessoa que também conheça os padrões ir