Escolha uma Página

Abstract Factory

2 de agosto de 2022
by Cenora
7
black floor lamp on living room sofa
Foto por Toa Heftiba em Unsplash

Imagine que você está criando um simulador de loja de mobílias. Seu código consiste de classes que representam:

  1. Uma família de produtos relacionados, como: Cadeira, Sofá e MesaDeCentro
  2. Várias variantes dessa família: Moderno, Vitoriano e ArtDeco

Você precisa de um jeito de criar objetos de mobília individuais para que eles combinem com outros objetos da mesma família. Os clientes ficam muito bravos quando recebem mobília que não combina.

  1. Produtos Abstratos declaram interfaces para um conjunto de produtos distintos mas relacionados que fazem parte de uma família de produtos
  2. Produtos Concretos são várias implementações de produtos abstratos, agrupados por variantes. Cada produto abstrato (cadeira/sofá) deve ser implementado em todas as variantes dadas (Vitoriano/Moderno).
  3. A interface Fábrica Abstrata declara um conjunto de métodos para criação de cada um dos produtos abstratos.
  4. Fábricas Concretas implementam métodos de criação fábrica abstratos. Cada fábrica concreta corresponde a uma variante específica de produtos e cria apenas aquelas variantes de produto.
  5. Embora fábricas concretas instanciam produtos concretos, assinaturas dos seus métodos de criação devem retornar produtos abstratos correspondentes. Dessa forma o código cliente que usa uma fábrica não fica ligada a variante específica do produto que ele pegou de uma fábrica. O Cliente pode trabalhar com qualquer variante de produto/fábrica concreto, desde que ele se comunique com seus objetos via interfaces abstratas.

.

Relacionadas, talvez…

Análise POO

Você gosta de gatos? Espero que sim, porque vou tentar explicar osconceitos da POO usando vários exemplos com gatos. Foto por ModCatShop em Unsplash Cada gato tem uma porção de atributos padrão: nome, gênero, idade, peso, cor, etc. Estes são chamados os campos de...

História de usuário

Foto por Maranda Vandergriff em Unsplash Histórias de usuárioPara planejar um projeto, devemos saber algo sobre os requisitos, mas não precisamossaber muito. Para propósitos de planejamento, precisamos saber sobre um requisito apenaso suficiente para estimá-lo. Talvez...

Classes, Objetos e Entidades

Foto por Tony Lee em Unsplash Classe não é um objeto. Classe é um modelo a ser seguido, objeto usa esse modelo para se estruturar. Pense em tempo de desenvolvimento e tempo de execução. Classe é definida no primeiro, o objeto no segundo. Classe só existe no seu...

Share This