A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Padrão Abstract Factory Projeto de Sistemas de Software Hazel Carvalho Crato.

Apresentações semelhantes


Apresentação em tema: "Padrão Abstract Factory Projeto de Sistemas de Software Hazel Carvalho Crato."— Transcrição da apresentação:

1 Padrão Abstract Factory Projeto de Sistemas de Software Hazel Carvalho Crato

2 © LES/PUC-Rio Sumário Abstract Factory –Propósito –Motivação –Aplicabilidade –Estrutura –Participantes –Colaborações –Conseqüências –Exemplo de Código

3 © LES/PUC-Rio Abstract Factory É classificado como um padrão de criação, também conhecido como Kit. Propósito –Prover uma interface para criar famílias de objetos relacionados ou dependentes sem especificar suas classes concretas.

4 © LES/PUC-Rio Motivação Exemplo 1:

5 © LES/PUC-Rio Motivação Exemplo 2:

6 © LES/PUC-Rio Motivação Diferentes padrões look-and-feel definem diferentes aparências (look) e comportamentos (feel) para um widget de uma interface de usuário. Exemplos: barras de rolagem, janelas, botões etc. Para ser portável através dos padrões look-and-feel, uma aplicação não deve instanciar os widgets diretamente de suas classes concretas para uma aparência ou comportamento particular. Para facilitar a alteração da aparência e do comportamento futuramente, defina uma classe abstrata GUIFactory que declara uma interface para criar cada tipo de widget básico. Defina ainda uma interface para cada tipo de widget e subclasses concretas que implementam widgets para um específico padrão look-and-feel.

7 © LES/PUC-Rio Motivação A interface de GUIFactory possui uma operação que retorna um novo widget concreto para cada widget abstrato. Há uma sub-classe concreta de GUIFactory para cada padrão look-and-feel. Cada sub-classe implementa as operações para criar o widget apropriado para o respectivo look-and-feel. Clientes criam os widgets apenas através da GUIFactory sem saber quem são widgets concretos para um específico look-and-feel. Uma GUIFactory reforça as dependências entre as classes concretas de widgets.

8 © LES/PUC-Rio Aplicabilidade O padrão deve ser usado quando: –Um sistema deve ser implementado independente de como os produtos são criados, compostos e representados. –Um sistema deve ser configurado com uma das múltiplas famílias de produtos. –Uma familia de um produto relacionado é projetada para ser utilizada junta, e faz-se necessário o reforço dessa restriçao. –Deseja-se prover uma biblioteca de classes de produtos e deseja-se revelar apenas as suas interfaces, mas não suas implementações.

9 © LES/PUC-Rio Estrutura

10 © LES/PUC-Rio Participantes AbstractFactory –Declara uma interface para operações que criam produtos abstratos. ConcreteFactory –Implementa as operações para criar produtos concretos. AbstractProduct –Declara uma interface para um tipo de produto. ConcreteProduct –Define um produto a ser criado pela fábrica concreta correspondente. –Implementa a interface AbstractProduct. Client –Usa apenas interfaces declaradas pelas classes AbstractFactory e AbstractProduct.

11 © LES/PUC-Rio Colaborações Normalmente uma única instância da classe ConcreteFactory é criada em tempo de execução. AbstractFactory delega a criação de produtos concretos para a respectiva subclasse ConcreteFactory. A classe ConcreteFactory cria produtos que possuem uma implementação particular, por exemplo: todos os widgets de uma WinFactory concreta.

12 © LES/PUC-Rio Conseqüências Vantagens –Abstract Factory isola classes concretas. –Facilita o intercâmbio de famílias de produtos. –Promove consistência entre produtos. Desvantagem –Suporte a novos tipos de produtos é dicífil.

13 Exemplo de Código

14 © LES/PUC-Rio Estrutura

15 © LES/PUC-Rio Abstract Factory

16 © LES/PUC-Rio Concrete Factory

17 © LES/PUC-Rio Abstract Product

18 © LES/PUC-Rio Concrete Product

19 © LES/PUC-Rio Transfer Object

20 © LES/PUC-Rio Client

21 Perguntas?


Carregar ppt "Padrão Abstract Factory Projeto de Sistemas de Software Hazel Carvalho Crato."

Apresentações semelhantes


Anúncios Google