·

Engenharia de Software ·

Linguagens de Programação

Envie sua pergunta para a IA e receba a resposta na hora

Fazer Pergunta

Texto de pré-visualização

PROGRAMAÇÃO MODULAR Padrões de Projeto design patterns Prof João Caram PUC Minas Bacharelado em Engenharia de Software Padrões de projeto Um padrão é uma descrição das características de uma solução comprovada para um problema recorrente na qual os elementos essenciais são considerados e os detalhes irrelevantes são omitidos GAMMA Erich et al 1995 Uma LINGUAGEM de padrões Ideia proposta por Christopher Alexander e outros autores na obra A Pattern Language Towns Buildings Construction 1977 Each pattern describes a problem which occurs over and over again in our environment and then describes the core of the solution to that problem in such a way that you can use this solution a million times over without ever doing it the same way twice Padrões de solução bem conhecidos aplicados em problemas específicos Mudança da política de fidelidade dos clientes Mudança nos poderes de um personagem de um jogo Criação de ingredientes adicionais para comidas Criação de novos veículos para uma frota Ideia trazida para a área de software por Beck e Cunningham na OOPSLA 1987 Construção de janelas na linguagem Smalltalk Popularizados em Engenharia de Software com o livro da Gangue dos Quatro Gang of Four GoF 1995 Design Patterns Elements of Reusable ObjectOriented Software Erich Gamma Richard Helm Ralph Johnson and John Vlissides AddisonWesley 1995 Padrões de projeto Favorecem a abstração Não garantem reutilização de código Soluções de problemas específicos Servem como modelos que ajudam desenvolvedores a solucionar problemas Estruturas bem conhecidas Padrões de projeto e POO Encapsulamento e abstração Um padrão encapsula uma solução bem definida Um padrão representa uma abstração de uma estrutura conhecida Generalização A partir de um padrão é possível a construção de várias soluções Padrões de projeto e POO Abertura extensibilidade Um padrão deve ser aberto para extensão Flexibilidade É possível se relacionar padrões ou compor padrões hierarquicamente para tratar de problemas de maior nível de detalhes Criar um catálogo de soluções reutilizáveis Criar um vocabulário comum para comunicar experiências problemas e soluções recorrentes Ajudar na documentação e facilitar o entendimento da estrutura de projetos Escopo de classe Uso de herança para criar ou variar objetos Escopo de objeto Uso de composição para delegar as responsabilidades para outro objeto Criacionais Abstraem o processo de criação de objetos Relacionados com inicialização e configuração de objetos Estruturais Tratam do desacoplamento entre a interface e a implementação de objetos Relacionados à composição de objetos Comportamentais Definem mecanismos de colaboração entre objetos Distribuem as responsabilidades e padronizam as comunicações Padrões GoF Propósito OBRIGADO Dúvidas PUC Minas Bacharelado em Engenharia de Software