Como Factories Ajudam a Tornar o Código Mais Expressivo

Quando escrevo código, uma das minhas principais preocupações é sua expressividade. Por que isso importa tanto? Imagine poder olhar para um pedaço de código e rapidamente discernir sua intenção e funcionalidade. Não apenas você, mas qualquer pessoa que venha a trabalhar com esse código no futuro, encontrará mais facilidade e eficiência na manutenção e compreensão do mesmo.

Expressividade no código nos permite comunicar intenções de maneira clara. Como eu consigo essa clareza? Uma das técnicas que utilizo é a aplicação de Factories, um padrão de projeto que me oferece liberdade e flexibilidade na construção de objetos.

O Poder dos Factories

Factories, no contexto de padrões de design, referem-se a um meio de criar instâncias de objetos sem expor a lógica de criação ao código cliente e sem referenciar as classes concretas que estão sendo instanciadas. Esse padrão encapsula a criação de objetos de tal forma que pode-se postergar a decisão entre criar um novo objeto ou reutilizar uma instância já existente.

Por que isso é benéfico? Considerando que o padrão Factory encapsula o comportamento de criação, o código cliente fica desacoplado das classes concretas. Isso significa que mudanças na lógica de criação ou nas classes concretas têm um impacto mínimo, se algum, no código cliente. Isso é um exemplo clássico da aplicação do princípio de responsabilidade única e do princípio aberto-fechado, onde o código deve ser aberto para extensão, mas fechado para modificação.

Vamos aprimorar o exemplo prático de um padrão Factory em C#:

public interface IProduct
{
    string GetName();
}

public class ConcreteProductA : IProduct
{
    public string GetName()
    {
        return "ConcreteProductA";
    }
}

public class ConcreteProductB : IProduct
{
    public string GetName()
    {
        return "ConcreteProductB";
    }
}

public static class ProductFactory
{
    public static IProduct CreateProduct(string type)
    {
        switch (type)
        {
            case "A":
                return new ConcreteProductA();
            case "B":
                return new ConcreteProductB();
            default:
                throw new ArgumentException("Invalid product type");
        }
    }
}

Nesse aperfeiçoamento, ProductFactory oferece uma interface ainda mais flexível, capaz de criar diferentes tipos de produtos com base em um parâmetro. Isso ilustra como o padrão Factory pode ser estendido e adaptado para diferentes necessidades sem obrigar o código cliente a se acoplar a implementações concretas.

Conclusão

A expressividade do código é fundamental para a manutenção e escalabilidade de um sistema. Utilizando padrões de design como os Factories, é possível alcançar um alto nível de clareza e comunicar as intenções de maneira eficaz. Essas estratégias de design permitem não somente melhorar a qualidade do nosso código, mas também tornar a experiência de desenvolvimento mais prazerosa e menos propensa a erros ou mal-entendidos.

Mergulhar ainda mais fundo nos padrões de projeto como Factory Method e Abstract Factory pode revelar a sutileza e eficácia desses padrões em situações complexas e diversos cenários de design de software. Refletindo sobre os princípios SOLID e como padrões como o Factory podem ajudar a aderir a esses princípios, nós vamos além da teoria e aplicamos práticas que resultam em software robusto e fácil de evoluir.

Se você quiser se aprofundar mais nesse assunto e em outros temas correlatos, participe dos meus grupos de estudos e mentorias, onde essas e outras técnicas são discutidas e aprimoradas.

TL;DR

  1. A expressividade do código é essencial para entender a intenção e funcionalidade do mesmo.
  2. O padrão Factory é um exemplo de design pattern que ajuda a tornar o código mais expressivo, flexível e fácil de manter.
  3. Melhorar a demonstração prática do padrão Factory com variações e exemplos ajuda a ilustrar como padrões de design podem ser adaptados a diferentes cenários.

Quer se aprofundar neste tema?

Então participe do grupo de estudos de Padrões de Projeto.

Desenvolva soluções simples para os problemas mais complexos. Escreva código fácil de entender, mais barato para manter e evoluir.

Participe do
grupo intensivo de

Padrões de Projeto

com

Desenvolva soluções simples para os problemas mais complexos. Escreva código fácil de entender, mais barato para manter e evoluir.

Sessões de masterclass relacionadas

Confira as masterclasses do Grupo de Estudos de Padrões de Projeto relacionadas a este artigo:
09/01/2023
Estratégias de criação de objetos são discutidas para melhorar desempenho, reuso e manutenção do código.
Masterclass: Criando (ou não) “objetos” do jeito certo: Factory, Abstract Factory, Builder e Prototype

Se interessou pelo tema?

Preencha os dados a seguir para receber atualizações de novas aulas do grupo de estudos de Padrões de Projeto:

Participe do
grupo intensivo de

Padrões de Projeto

com

Desenvolva soluções simples para os problemas mais complexos. Escreva código fácil de entender, mais barato para manter e evoluir.

Veja outros artigos relacionados

Quer Melhorar Seu Design? Aplique CQS

Nesse mundo cada vez mais acelerado da tecnologia da informação, uma das metas constantes para desenvolvedores é a otimização e...

Você Precisa Conhecer o State Pattern

Em minha jornada como desenvolvedor de software, a descoberta e compreensão do State Pattern foi um divisor de águas, assim...

Como padrões ajudam a reduzir o impacto da escassez de recursos

Quando pensamos em software development, um dos grandes desafios é criar sistemas eficientes especialmente em ambientes com recursos limitados. Diante...

Crie sua conta

Preencha os dados a seguir para iniciar o seu cadastro no Grupo Intensivo de Estudos de DDD do Jeito Certo:

Crie sua conta

Preencha os dados a seguir para iniciar o seu cadastro no Grupo Intensivo de Estudos de Reputação e Marketing Pessoal:

Crie sua conta

Preencha os dados a seguir para iniciar o seu cadastro no Grupo Intensivo de Estudos de Reputação e Marketing Pessoal:

Crie sua conta

Preencha os dados a seguir para iniciar o seu cadastro no Grupo Intensivo de Estudos de Padrões de Projeto:

Crie sua conta

Preencha os dados a seguir para iniciar o seu cadastro no Grupo Intensivo de Estudos de Padrões de Projeto:

Crie sua conta

Preencha os dados a seguir para iniciar o seu cadastro no Grupo Intensivo de Estudos de Algoritmos e Estruturas de Dados:

Crie sua conta

Preencha os dados a seguir para iniciar o seu cadastro no Grupo Intensivo de Estudos de Algoritmos e Estruturas de Dados:

Crie sua conta

Preencha os dados a seguir para iniciar o seu cadastro no Programa ElemarJR de Aceleração, Do Jeito Certo:

Crie sua conta

Preencha os dados a seguir para iniciar o seu cadastro no Programa ElemarJR de Aceleração, Do Jeito Certo:

Crie sua conta

Preencha os dados a seguir para iniciar o seu cadastro no Grupo Intensivo de Estudos de Reputação e Marketing Pessoal:

Crie sua conta

Preencha os dados a seguir para iniciar o seu cadastro no Grupo Intensivo de Estudos de Reputação e Marketing Pessoal:

Crie sua conta

Preencha os dados a seguir para iniciar o seu cadastro no Grupo Intensivo de Estudos de Padrões de Projeto:

Crie sua conta

Preencha os dados a seguir para iniciar o seu cadastro no Grupo Intensivo de Estudos de Padrões de Projeto:

Crie sua conta

Preencha os dados a seguir para iniciar o seu cadastro no Grupo Intensivo de Estudos de DDD do Jeito Certo:

Crie sua conta

Preencha os dados a seguir para iniciar o seu cadastro no Grupo Intensivo de Estudos de DDD do Jeito Certo:

Crie sua conta

Preencha os dados a seguir para iniciar o seu cadastro no Grupo Intensivo de Estudos de Algoritmos e Estruturas de Dados:

Crie sua conta

Preencha os dados a seguir para iniciar o seu cadastro no Grupo Intensivo de Estudos de Algoritmos e Estruturas de Dados:

Mentoria em Arquitetura de Software

Ênfase em Systems Design

Para se candidatar nesta turma aberta, preencha o formulário a seguir:

Reproduzir vídeo

Crie sua conta

Preencha os dados a seguir para iniciar o seu cadastro no curso de Como Factories Ajudam a Tornar o Código Mais Expressivo:

Crie sua conta

Preencha os dados a seguir para iniciar o seu cadastro no curso de Como Factories Ajudam a Tornar o Código Mais Expressivo:

Como Factories Ajudam a Tornar o Código Mais Expressivo

Crie sua conta

Preencha os dados a seguir para iniciar o seu cadastro no Grupo Intensivo de Estudos de Reputação e Marketing Pessoal:

Crie sua conta

Preencha os dados a seguir para iniciar o seu cadastro no curso de Como Factories Ajudam a Tornar o Código Mais Expressivo:

Crie sua conta

Preencha os dados a seguir para iniciar o seu cadastro no Grupo Intensivo de Estudos de DDD do Jeito Certo:

Crie sua conta

Preencha os dados a seguir para iniciar o seu cadastro no Grupo Intensivo de Estudos de Padrões de Projeto:

Crie sua conta

Preencha os dados a seguir para iniciar o seu cadastro no Grupo Intensivo de Estudos de Algoritmos e Estruturas de Dados:

× Precisa de ajuda?