Prévia do material em texto
15 1 Profª Drª Mariane Gavioli Bergamini Fernandes Arquitetura de Sistemas Aula 4 15 2 Conversa Inicial 15 3 Os objetivos da aula serão: compreender os fundamentos teóricos sobre design patterns, contextualizar os tipos de padrões utilizados e compreender e avaliar os padrões de reusos mais utilizados. 15 4 Durante nossa aula será explorado 5 temas: • Aspectos fundamentais sobre padrões de projeto reutilizáveis (Design Patterns). • Padrões criacionais • Padrões estruturais • Padrões comportamentais • Aprofundamento nos padrões mais usados 15 5 ASPECTOS FUNDAMENTAIS SOBRE PADRÕES DE PROJETO REUTILIZÁVEIS 15 6 Padrão arquitetônico fornece um conjunto de subsistemas, assim como as responsabilidade, regras e diretrizes para compreender a interação entre eles. Padrão Arquitetônico 15 7 Um conjunto de componentes Responsabilidade dos componentes envolvidos (papéis) Relacionamentos entre componentes 15 8 Padrões de design podem ser considerados como soluções conceituais para problemas recorrentes de design. Cada padrão trata um problema no design ou na implementação do software. Design Patterns 15 9 Ser capaz de lidar com novos requisitos, evitar o redesenho ou minimizá-lo. Uma vantagem é utilizar técnicas orientadas a objetos, podem ser mais flexíveis. Herança → objetos de solução adicionados → bibliotecas de classes → framework. Reuso 15 10 PADRÕES CRIACIONAIS 15 11 Garante a modulariedade do software Menor dependência de classes concretas Padrão Criacional 15 12 Instanciação de classe: define a melhor maneira na qual um objeto pode ser instanciado. Criação de classe: Utiliza a herança no processo de instanciação. Criação de objeto: Utiliza a delegação para realizar o trabalho. 15 13 Tipos de padrões criacional 15 14 Fornece uma interface para desenvolver objetos Permite que subclasses modifiquem o tipo de objetos que são desenvolvidos Padrão Factory 15 15 Exemplo Factory Method Centralizar a criação de objetos de diferentes classes derivadas de uma classe base. Em vez de criar objetos diretamente utilizando ‘new’, uma função ‘createProduct’ decide qual classe instanciar com base no ‘ProductID’. 15 16 PADRÕES ESTRUTURAIS 15 17 Lida com a composição de classes ou de objetos. Classes e objetos são compostos Herança para compor interfaces Padrão de Design Estrutural 15 18 Adaptador (Adapter) Ponte (Bridge) Composto (Composite) Decorador (Decorator) Fachada (Facade) Tipos de padrões estruturais 15 19 A classe adaptador é usada para traduzir solicitações dela para outra classe (ou seja, o adaptado). ✓Adaptar a classe ✓Adaptar o objeto Padrão Adapter 15 20 15 21 PADRÕES COMPORTAMENTAIS 15 22 Descrevem não apenas padrões de objetos ou classes, mas também os padrões de comunicação entre eles. Padrões comportamentais 15 23 Estratégia (strategy) Template Observador (observer) Iterador (iterator) Estado (state) Padrões comportamentais 15 24 Promove o desacoplamento, permitindo que algoritmos de iteração sejam independentes da estrutura de dados específica. Padrão comportamental iterador 15 25 A implementação de "ListIterator" abstrai os detalhes de como a lista é armazenada. 15 26 A principal ideia do padrão comportamental é desacoplar remetentes e destinatários fornecendo a vários objetos uma chance de lidar com uma solicitação. Aumenta a flexibilidade na execução da comunicação. 15 27 APROFUNDAMENTO NOS PADRÕES MAIS USADOS 15 28 Cenário: Para uma aplicação web MVC, vamos imaginar um sistema de gerenciamento de tarefas. Quais são as tarefas dos componentes modelo, visão e controlador? MVC com padrão Observador 15 29 Cliente-servidor com padrão Iterador Cenário: Imagine um sistema de gerenciamento de projetos de software. O servidor armazena informações sobre vários projetos, cada um contendo tarefas, equipes e documentação. O motivo de se utilizar o padrão iterador neste cenário? 15 30 Cenário: Um microsserviço responsável pelo processamento de pagamentos, onde precisa lidar com diferentes gateways de pagamento, como PayPal, Stripe e PagSeguro. Cada gateway tem suas próprias APIs e requisitos de integração. Microsserviços com padrão fábrica (factory) 15 31 Arquitetura MVC utilizando o padrão observador Arquitetura cliente servidor utilizando o padrão iterador Arquitetura microsserviços utilizando o padrão fábrica ( factory). Padrões de design 15 32 Slide 1: Arquitetura de Sistemas Slide 2: Conversa Inicial Slide 3 Slide 4 Slide 5: ASPECTOS FUNDAMENTAIS SOBRE PADRÕES DE PROJETO REUTILIZÁVEIS Slide 6: Padrão Arquitetônico Slide 7 Slide 8: Design Patterns Slide 9: Reuso Slide 10: PADRÕES CRIACIONAIS Slide 11: Padrão Criacional Slide 12 Slide 13: Tipos de padrões criacional Slide 14: Padrão Factory Slide 15: Exemplo Factory Method Slide 16: PADRÕES ESTRUTURAIS Slide 17: Padrão de Design Estrutural Slide 18: Tipos de padrões estruturais Slide 19 Slide 20 Slide 21: PADRÕES COMPORTAMENTAIS Slide 22: Padrões comportamentais Slide 23: Padrões comportamentais Slide 24: Padrão comportamental iterador Slide 25 Slide 26 Slide 27: APROFUNDAMENTO NOS PADRÕES MAIS USADOS Slide 28: MVC com padrão Observador Slide 29: Cliente-servidor com padrão Iterador Slide 30: Microsserviços com padrão fábrica (factory) Slide 31: Padrões de design Slide 32