Factory Method — Design Pattern em .NET

Khauê Viana
Jul 28, 2017 · 2 min read

Mais um artigo sobre Design Pattern! Lembrando, que estou traduzindo os artigos do portal DoFactory :)

No final coloquei um exemplo do projeto em .NET Core, só clonar e rodar!


Definição

Define uma interface para criação de um objeto, mas permite que uma subclasse decida qual classe será instanciada. Factory Method permite que uma classe delegue uma instanciação para as subclasses.

Frequência do uso: ALTA

Diagrama de Classes UML

Participantes

As classes e objetos participantes nesse pattern são:

Product (Page)

  • Define a interface dos objetos que o Factory Method cria.

ConcreteProduct (SkillsPage, EducationPage, ExperiencePage)

  • Implementa a interface Product.

Creator (Document)

  • Declara o Factory Method, que retorna o objeto do tipo Product. Creator também define uma implementação padrão do Factory Method que retorna o objeto padrão ConcreteProduct.
  • Pode chamar o Factory Method para criar um objeto Product.

ConcreteCreator (Report, Resume)

  • Sobrescreve o Factory Method que retorna uma instância de um ConcreteProduct.

Código Estrutural em C#

Esse código estrutural demonstra o Factory Method oferecendo uma ótima flexibilidade na criação de diferentes objetos. A classe Abstract pode providenciar um objeto padrão, mas cada subclasse pode instanciar uma versão extendida do objeto.

Output

Created ConcreteProductA

Created ConcreteProductB

Código no mundo real em C#

Esse código do mundo real demonstra o Factory Method oferecendo flexibilidade na criação de diferentes documentos. As classes derivadas de Document, Report e Resume, instanciam versões extendidas da classe Document. Aqui, o Factory Method é chamado no construtor da classe base Document.

Output

Resume — — — —

SkillsPage

EducationPage

ExperiencePage

Report — — — —

IntroductionPage

ResultsPage

ConclusionPage

SummaryPage

BibliographyPage

FONTE: Factory Method em DoFactory

Projeto .NET Core

Meu Resumo

Resumindo… O Factory Method é, para mim, a forma mais simples de usar o Pattern Factory. Você cria uma série de subclasses a partir de uma classe genérica, e cria suas fábricas para construir um conjunto de classes a partir dessas subclasses.

Khauê Viana

Written by

Software Developer