Então pessoal! De volta ao batente, vou falar hoje sobre o Software Design Pattern Factory Method.
Factory Method
Objetivo – criar uma interface em comum para a criação de diversos tipos de objetos correlacionados, deixando a implementação do método para as sub-classes. Constitui-se de um método virtual construtor de objetos.
Para quem anda acompanhando os posts que ando publicando sobre padrões de projeto, por diversas vezes Factory Methods foram usados dentro de outros Design Patterns. O diagrama UML abaixo demonstra um exemplo de uso de Factory Method, onde em uma aplicação há várias seções (MacbookSection e iMacSection) que possuem particularidades para a criação dos objetos que irão compor a seção. Deste modo cada um realiza a instanciação dos objetos através da super classe Product.
![]() |
Diagrama UML de um Factory Method |
Exemplo
Segue abaixo um código de exemplo demonstrando o uso de um Factory Method em C++.
abstract class Application {
public:
abstract Product createProduct();}
class MacbookSection: public Application {
public:
Product createProduct(){
return new Macbook();
}}
class iMacSection: public Application {
public:
Product createProduct(){
return new iMac();
}}
abstract class Product {
}
class Macbook: public Product {
}
class iMac: public Product {
}
E assim chegamos ao fim de mais um Design Pattern! Até o momento este é o mais simples de todos os padrões que estudamos. Amanhã irei trazer mais um Design Pattern. Caso alguém tenha alguma dúvida, mesmo relacionada ao código-fonte em C++, fique a vontade para expor nos comentários.
Abraços e até mais! 🙂