Software Design Pattern: Factory Method

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.

factory_method.png
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! 🙂

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *