Skip to content
01/09/2009 / Thiago

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 uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: