DevMedia Cursos
Curso online

Introdução a Design Patterns
Neste curso de introdução a Design Patterns serão discutidos uma visão geral sobre padrões de projetos e princípios de design. Inicia-se também a construção de um código funcional, justificando a necessidade de utilização do princípio de programar para uma interface e não para uma implementação.
[VER MAIS DETALHES]
Introdução
- 1
Introdução
Marcar como lido | DownloadNesta vídeo-aula são discutidos uma visão geral sobre design patterns e princípios de design.
- 2
Programar Para uma Interface - Parte 1
Marcar como lido | DownloadNesta vídeo-aula, continuamos a aula anterior, mostrando os problemas ocorridos ao se programar para uma implementação em vez de programar para uma interface.
- 3
Programar Para uma Interface - Parte 2
Marcar como lido | DownloadNesta vídeo-aula, continuamos a aula anterior, mostrando os problemas ocorridos ao se programar para uma implementação em vez de programar para uma interface.
- 4
Programar Para uma Interface - Parte 3
Marcar como lido | DownloadNa primeira parte desta vídeo-aula, continuaremos a discussão sobre princípios de design, em especial o princípio de favorecimento da composição sobre a herança.
Favorecimento de Composição sobre Herança
- 5
Princípio de design
Marcar como lido | DownloadNesta segunda parte da aula, continuaremos a discussão sobre o princípio de design de favorecimento da composição sobre a herança.
- 6
Inclusão de novos requisitos
Marcar como lido | DownloadNesta aula continuaremos a discussão sobre o princípio de design de favorecimento da composição sobre a herança, atendendo a inclusão de novos requisitos
- 7
Finalizando inclusão de novos requisitos
Marcar como lido | DownloadNesta aula, continuaremos a discussão sobre o princípio de design de favorecimento da composição sobre a herança, atendendo a inclusão de novos requisitos.
- 8
Abordagem de implementação
Marcar como lido | DownloadNesta aula, continuaremos a discussão sobre o princípio de design de favorecimento da composição sobre a herança, atendendo a inclusão de novos requisitos e finalizando mais uma possível abordagem de implementação.
- 9
Conceito de composição
Marcar como lido | DownloadNesta aula, continuaremos a discussão sobre o princípio de design de favorecimento da composição sobre a herança, atendendo a inclusão de novos requisitos e melhorando as soluções anteriores através do conceito de composição.
- 10
Reuso de código
Marcar como lido | DownloadNesta parte continuaremos a discussão sobre o princípio de design de favorecimento da composição sobre a herança, utilizando delegação e composição para simular reuso de código.
- 11
Revisão dos diagramas de classes
Marcar como lido | DownloadNesta aula continuaremos a discussão sobre o princípio de design de favorecimento da composição sobre a herança, utilizando delegação e composição para simular reuso de código. Também é exibida uma revisão dos diagramas de classes dos códigos intermediários desenvolvidos nas partes anteriores.
Design pattern Strategy
- 12
Encapsular o que varia
Marcar como lido | DownloadA partir desta vídeo aula discutiremos o princípio de design "Encapsular o que varia". Nesta primeira parte, criaremos nossa primeira versão do código.
- 13
Novos requisitos
Marcar como lido | DownloadNesta vídeo aula atendemos a necessidade de nosso cliente, incluindo novos requisitos. Mostramos nesta aula uma possível abordagem que funciona embora não seja a melhor solução, justificando a necessidade de melhorias no código.
- 14
Duplicação de código
Marcar como lido | DownloadNesta vídeo aula criamos uma abordagem diferente da usada na aula anterior com o intuito de resolver os problemas de duplicação de código nas subclasses e manutenção constante de cada inclusão de requisitos. Para isso, usaremos o conceito de Interface Java.
- 15
Removendo problemas existentes nas versões anteriores
Marcar como lido | DownloadNesta vídeo aula iniciamos a aplicação do princípio de Encapsular o que Varia com o intuito de removermos os problemas existentes nas versões anteriores de nossa aplicação.
- 16
Finalizando implementação
Marcar como lido | DownloadNesta vídeo aula terminaremos a implementação do princípio de Encapsular o que Varia.
- 17
Pattern Strategy
Marcar como lido | DownloadNesta última vídeo aula sobre o princípio de design encapsular o que varia, fornecemos uma definição mais formal sobre patterns e apresentamos o patter Strategy, relacionando-o com nossa implementação desenvolvida em aulas anteriores.
Classes Abstratas
- 18
Classes abstratas
Marcar como lido | DownloadNesta aula entenderemos os conceitos de classes abstratas.
Interface
- 19
Interfaces Java
Marcar como lido | DownloadNesta vídeo aula continuaremos nossa revisão sobre esses conceitos na linguagem através da criação de códigos para auxiliar o entendimento de conceitos fundamentais sobre classes abstratas e interfaces Java.
- 20
Interfaces Marcadoras
Marcar como lido | DownloadNesta aula continuaremos nossa revisão sobre classes abstratas e interfaces Java. Em especial, discutiremos o conceito de Marker Interfaces.
- 21
Stubs de Interfaces
Marcar como lido | DownloadNesta vídeo aula continuaremos nossa revisão interfaces Java.
Classe Adapter
- 22
Class Adapter
Marcar como lido | DownloadNesta vídeo aula, apresentaremos a definição formal do pattern, incluindo seu diagrama de classes que será validado através de um cenário hipotético, tornando o aprendizado o mais simples possível.
- 23
Propriedades da Class Adapter
Marcar como lido | DownloadNesta vídeo-aula, continuaremos a evolução do cenário discutido na aula anterior, aplicando o design pattern Adapter, mais especificamente uma variante deste pattern conhecida como Class Adapter.
- 24
Object Adapter
Marcar como lido | DownloadNesta vídeo-aula, discutiremos sobre o design pattern Adapter, mais especificamente uma variante deste pattern conhecida como Object Adapter.
- 25
Object Adapte, JTable
Marcar como lido | DownloadNesta vídeo-aula, terminaremos a discussão sobre o design pattern Adapter, mais especificamente uma variante deste pattern conhecida como Object Adapter.
Facade
- 26
Facade
Marcar como lido | DownloadNesta vídeo-aula, iniciaremos a discussão sobre o design pattern Facade e do princípio de design do Conhecimento Mínimo, também conhecido como Lei de Demétrio ou Não Fale com Estranhos.
- 27
Lei de Demérito
Marcar como lido | DownloadNesta vídeo-aula, continuaremos a discussão sobre o design pattern Facade e do princípio de design do Conhecimento Mínimo, também conhecido como Lei de Demétrio, evoluindo o código desenvolvido na aula anterior.
- 28
Princípio do Conhecimento Mínimo
Marcar como lido | DownloadNesta parte da aula, vamos criar uma classe para simular um banco de dados e uma outra para testar nossa aplicação até o momento.
- 29
Engenharia Reversa
Marcar como lido | DownloadNesta parte da aula, vamos fazer a engenharia reversa do código desenvolvido até este momento para podermos visualizar de forma mais intuitiva o design sendo confeccionado e mostrar seus pontos fracos, corrigindo-os com a aplicação do Facade.
- 30
GOF
Marcar como lido | DownloadNesta parte da aula, vamos resumir o que vimos até então e tentar traçar um paralelo de nosso código com o framework para o Facade proposto pelo GOF.
- 31
Design pattern facade
Marcar como lido | DownloadNesta parte final, vamos mostrar como refatorar nosso código desenvolvido em aulas anteriores para aderir ao princípio
Singleton
- 32
Singleton
Marcar como lido | DownloadNesta vídeo-aula, iniciaremos a discussão sobre o design pattern Singleton.
- 33
Estratégia de Implementação
Marcar como lido | DownloadTendo justificado a necessidade de aplicação do pattern na aula anterior, vamos agora refatorar nossa solução e verificar se esta nova solução atende aos requisitos iniciais.
- 34
Lazy Singleton
Marcar como lido | DownloadEspecificamente, nesta e nas próximas vídeo-aulas, discutiremos técnicas e cuidados necessários na implementação do pattern.
- 35
Técnicas de Implementação
Marcar como lido | DownloadApós discutidos os problemas de se implementar a estratégia Lazy Singleton em ambiente multi-thread, apresentaremos uma solução simples para o problema utilizando a palavra reservada synchronized na assinatura de nosso método que retorna a instâ
- 36
Facade e Singleton
Marcar como lido | DownloadEspecificamente, nesta aulas, iremos refatorar o design facade em aulas anteriores para a utilização de singletons, já que é muito comum termos fachadas implementadas desta forma.
Fábrica Concreta
- 37
Fábrica Concreta
Marcar como lido | DownloadEsta é a primeira parte da sétima vídeo aula do curso de princípios de design e design patterns. Nesta e nas próximas aulas vamos ater nossa atenção à construção de objetos através da técnica Fábrica Concreta, também conhecida com Fábrica Simple
- 38
Projeto
Marcar como lido | DownloadNesta aula, damos continuidade à evolução de nosso cenário, criando um projeto para simular o sistema externo de estoque e iniciando a construção dos adaptatores.
- 39
Teste
Marcar como lido | DownloadNo final desta aula, veremos que iremos conseguir fazer a comunicação com o sistema externo hipotético de contabilidade, tanto da IBM quanto da Itautec.
- 40
Adaptadores e Controlador
Marcar como lido | DownloadNesta aula criaremos os adaptadores e o controlador para o sistema hipotético de estoque tanto da IBM quanto da Itautec
- 41
Testando o Controlador
Marcar como lido | DownloadNesta aula criaremos o nosso controlador registradora que precisa acessar tanto o sistema de estoque quanto o sistema de contabilidade externos.
- 42
Evolução de Requisitos
Marcar como lido | DownloadNesta aula iniciamos a discussão destacando duas características de qualquer software: Mudança de Requisitos e Evolução para acomodarmos novos requisitos.
Objetos Adaptadores
- 43
Objetos Adaptadores
Marcar como lido | DownloadNesta aula continuaremos a evolução de nosso cenário exibindo mecanismos mais flexíveis para se determinar quais objetos adaptadores devem ser criados no momento de startup da aplicação.
- 44
Fábrica de Objetos
Marcar como lido | DownloadCriaremos nessa aula nossa fábrica de objetos parametrizada, desacoplando o conhecimento dos objetos a serem criados de nossos clientes, que em nosso caso são os controladores.
- 45
Fábrica Concreta
Marcar como lido | DownloadNesta aula vamos resumir o que foi feito até agora e discutir as vantagens deste no sso novo design utilizando uma fábrica concreta em relação à nossa versão anterior.
- 46
Criação de Objetos
Marcar como lido | DownloadNesta aula, iniciamos a discussão de um novo cenário para exemplificarmos a questão de criação de objetos distintos em tempo de execução.
- 47
Fábrica Concreta Parametrizada
Marcar como lido | DownloadNesta aula, finalizaremos nosso cenário de pagamentos com cartão de crédito e com cheque através da inclusão de uma fábrica concreta parametrizada.
- 48
Adaptadores e Fábrica Concreta Parametrizada
Marcar como lido | DownloadNesta aula, retornaremos ao cenário de criação de adaptadores para sistemas externos, transformando nossa fábrica parametrizada em uma que lê qual classe instanciar a partir de uma propriedade do sistema.
DAO, Factory Method e Abstract Factory
- 49
DAO
Marcar como lido | DownloadEsta é a primeira parte da oitava vídeo aula do curso de princípios de design e design patterns. Nesta aula, dividida em diversas partes, discutiremos 3 padrões de projeto.
- 50
Data Access Object
Marcar como lido | DownloadNesta aula inciaremos um cenário que será evoluído ao longo das partes desta vídeo-aula para que possamos justificar a inclusão destes patterns.
- 51
JPA
Marcar como lido | DownloadNesta aula iniciaremos a construção de um DAO para encapsular os detalhes de comunicação com a camada de recursos de nossa aplicação utilizando o framework objeto relacional, JPA.
- 52
Framework Objeto Relacional
Marcar como lido | DownloadNesta aula continuaremos a construção de um DAO para encapsular os detalhes de comunicação com a camada de recursos de nossa aplicação utilizando o framework objeto relacional, JPA.
- 53
Manipulando o DAO
Marcar como lido | DownloadNesta aula continuaremos os testes sobre o DAO criado na aula anterior, persistindo diversos objetos, consultando, removendo e atualizando-os.
- 54
Teste
Marcar como lido | DownloadNesta aula continuaremos os testes sobre o DAO criado na aula anterior. Aproveitaremos também para fazer a engenharia reversa de nosso modelo de domínio e de nossa camada de integração desenvolvida até o momento.
- 55
Associação 1:1
Marcar como lido | DownloadNesta aula faremos os testes da associação 1:1 entre Customer e Credential. Também iniciaremos a implementação do DAO representando o bean de entidade Product.
- 56
CRUD, DAO
Marcar como lido | DownloadNesta aula criaremos uma classe para testar o DAO Product desenvolvido em aulas passadas.
- 57
JPA e DAO
Marcar como lido | DownloadNesta aula terminaremos os testes dos nossos DAOs implementados com a tecnologia JPA e faremos uma revisão do que implementamos até então para, nas próximas aulas seguirmos em direção aos patterns factory method e abstract factory.
- 58
Aplicando Fábrica Concreta
Marcar como lido | DownloadNesta aula usaremos a estratégia fábrica concreta vista em aulas anteriores para tirarmos de nossos códigos clientes o conhecimento da construção de objetos, centralizando a instanciação.
- 59
Metamodelo GOF
Marcar como lido | DownloadNesta aula ilustraremos como o código desenvolvido até o momento se encaixa no metamodelo GOF para o pattern Factory Method.
- 60
Camada de Persistência
Marcar como lido | DownloadAgora que já apresentamos o design pattern Factory Method, vamos evoluir nosso cenário para o uso do pattern Abstract Factory.
- 61
Classe CustomerDAOJDBC
Marcar como lido | DownloadNesta aula daremos continuidade à implementação da classe CustomerDAOJDBC, em específico o método responsável por fazer a persistência de uma credencial associado com um cliente no banco de dados.
- 62
Persistência e Transações
Marcar como lido | DownloadNesta aula, continuaremos a implementação do método persist do nosso CustomerDAOJDBC.
- 63
Eclipselink, JPA
Marcar como lido | DownloadNesta aula veremos como customizar a geração do script DDL de criação de tabelas em um banco de dados quando usamos a implementação eclipselink para o JPA.
- 64
Atualização de Tabelas
Marcar como lido | DownloadNesta aula continuaremos a implementação do nosso CustomerDAOJDBC.
- 65
Método findAll
Marcar como lido | DownloadNesta aula continuaremos a implementação do nosso CustomerDAOJDBC nos atendo ao método findAll(String name) presente em nosso DAO.
- 66
CustomerDAOJDBC
Marcar como lido | DownloadNesta aula continuaremos a implementação do nosso CustomerDAOJDBC.
- 67
Refatoração
Marcar como lido | DownloadNesta aula removeremos o erro de consistência gerado em nosso banco de dados, explicaremos sobre a importância do uso de refactoring e iniciaremos a implementação do DAO ProductDAOJDBC.
- 68
DAOS JDBC
Marcar como lido | DownloadNesta aula terminaremos a confecção do ProductDAOJDBC, criaremos uma fábrica concreta para DAOs JDBC seguindo a mesma linha de raciocínio usada nas partes sobre JPA e faremos os testes necessários.
- 69
Camada de Persistência
Marcar como lido | DownloadNesta aula finalizaremos a implementação da nossa camada de persitência, derivando o design pattern Abstract Factory a partir do código em uma estratégia Bottom-Up.
- 70
Pattern Abstract
Marcar como lido | DownloadNesta aula apresentaremos a definição formal do pattern Abstract juntamente com seu metamodelo
Template Method
- 71
Template Method
Marcar como lido | DownloadNesta aula apresentaremos a definição formal do pattern Template Method e começaremos a implementação do nosso cenário.
- 72
Implementação Template Method
Marcar como lido | DownloadNesta aula continuaremos a implementação de nosso cenário que está sendo evoluído aula a aula com o objetivo de chegarmos ao design pattern TemplateMethod.
- 73
Modelo de Domínio
Marcar como lido | DownloadNesta aula continuaremos a implementação do nosso modelo de domínio e iniciaremos a confecção de nossa classe de testes.
- 74
Teste Automatizado
Marcar como lido | DownloadNesta aula implementaremos um teste automatizado para teste da nossa lógica de negócios desenvolvida nas aulas anteriores.
- 75
Cuidados Necessários
Marcar como lido | DownloadNesta aula apresentarei as justificativas e cuidados necessários para o uso necessário da técnica de refatoração.
- 76
Extrair Método
Marcar como lido | DownloadNesta aula apresentarei o primeiro refactoring feito no nosso cenário que é o Extrair Método.
- 77
Mover Método
Marcar como lido | DownloadNesta aula apresentarei o refactoring Mover Método que pode ser justificado pelo princípio GRASP conhecido como Especialista da Informação,
- 78
Reforçando Aprendizado
Marcar como lido | DownloadNesta aula apresentarei o refactoring Substituir Variável Temporária por Consulta e reforçarei o nosso aprendizado sobre os refactorings Extrair e Mover Método
- 79
Código Legível
Marcar como lido | Downloadessa aula usarei novamente o refactoring Substituir Variável Temporária por Consulta para tornar nosso código mais legível.
- 80
Novo Requisito
Marcar como lido | DownloadNessa aula, após ter refatorado o método de geração de conta em texto plano, incluirei o novo requisito para geração de conta em HTML.
- 81
Refatorando o Código
Marcar como lido | DownloadNessa aula, simularemos a mudança de requisitos, justificando um momento apropriado para refatorarmos nosso código.
- 82
Hierarquia de Contas
Marcar como lido | DownloadNessa aula, iniciaremos a construção de uma hierarquia de contas para, em breve, podermos derivar o design pattern template method a partir de refactorings sucessivos.
- 83
Template Method
Marcar como lido | DownloadNesta aula daremos continuidade ao estudo do design patterns Template Method.
- 84
Conclusão Template Method
Marcar como lido | DownloadNesta aula, derivaremos o design patterns Template Method a partir do nosso exemplo e aproveitaremos para revisar a definição formal e metamodeos do pattern conforme definidos pelo GOF.
Padrão State
- 85
State
Marcar como lido | DownloadNesta última aulas, iremos desvendar os segredo do design pattern State.
- 86
Design Pattern State
Marcar como lido | DownloadNesta parte continuaremos a implemntação da nossa máquina de caça níqueis.
- 87
Métodos Auxiliares
Marcar como lido | DownloadNesta parte implementaremos os métodos auxiliares para realização do sorteio e verificação se houve ou não ganhador ao se gira a manivela no caça níqueis.
- 88
Testes
Marcar como lido | DownloadNesta aula finalizaremos a implementação inicial de nossa máquina de caça níqueis e aproveitaremos para fazer alguns testes para verificar o comportamento obtido.
- 89
Mudança de Requisitos
Marcar como lido | DownloadNesta aula atenderemos uma solicitação de mudanças de requisitos, incluindo a capacidade de pagamento de premiação extra para nossos apostadores.
- 90
Código Alternativo
Marcar como lido | DownloadNesta aula testaremos o código desenvolvido na aula anterior e nos prepararemos para uma implementação alternativa baseada no design pattern State.
- 91
Prós e Contras
Marcar como lido | DownloadNesta aula iniciaremos a implementação do design pattern State, contrastando com nossa implementação anterior.
- 92
Hierarquia de Classes
Marcar como lido | DownloadNesta aula implementaremos a hieraquia de classes associada aos estados que a nossa máquina de caça-níqueis pode estar em determinado momento do tempo.
- 93
Prós e contras em manter um método em estado separado
Marcar como lido | DownloadNesta aula terminamos a implementação da hieraquia de classes associada aos estados que a nossa máquina de caca-niqueis pode estar em determinado momento do tempo.
- 94
Testes
Marcar como lido | DownloadNesta aula terminamos a implementação do nosso estudo de caso e aproveitamos para fazer alguns testes.
- 95
Aula Final
Marcar como lido | DownloadNesta aula formalizaremos o pattern State contrastando com nossa solução. Aproveitamos para fazer uma breve revisão do que foi visto no decorrer do curso.


30
0