Padrões de Projeto em JAVA: 23 Padrões do GoF na prática
3.7 (5 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
37 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Padrões de Projeto em JAVA: 23 Padrões do GoF na prática to your Wishlist.

Add to Wishlist

Padrões de Projeto em JAVA: 23 Padrões do GoF na prática

Explanação dos 23 padrões do GoF e sua utilização prática com a linguagem Java
3.7 (5 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
37 students enrolled
Created by Fernando Anselmo
Last updated 7/2017
Portuguese
Price: $65
30-Day Money-Back Guarantee
Includes:
  • 3 hours on-demand video
  • 47 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Como usar na prática os 23 Padrões de Projeto do GoF, que estão divididos em três categorias: Criação, Estrutural e Comportamental.
View Curriculum
Requirements
  • Conhecimentos básicos de Orientação a Objetos e linguagem Java
Description

Neste curso veremos como utilizar e extrair benefícios de cada um dos 23 padrões de projeto GoF (Gang of Four). Cada Padrão de Projeto é reconhecido como uma solução comprovada para um determinado problema na concepção de um projeto de software, os padrões do GoF são divididos em 3 áreas: 

  • Criacionais - Se refere a abstração do processo de criação dos objetos,
  • Estruturais - Se refere como as classes e os objetos são compostos.
  • Comportamentais - Se refere as responsabilidades são atribuídas as classes e aos objetos.

Os padrões foram concebidos para oferecerem as melhores soluções, seguindo um processo detalhado para responder a análise dos requisitos através de uma arquitetura flexível.

Who is the target audience?
  • Arquitetos, Programadores e Técnicos que desejam aprimorar seus conhecimentos na área de Padrões de Projeto
Compare to Other Java Courses
Curriculum For This Course
25 Lectures
02:55:45
+
Para começar
2 Lectures 03:24

É importante saber que os Padrões, por si só, não garantem o sucesso de um projeto, cada um deles descreve quando pode ser aplicado, mas somente a experiência pode proporcionar o entendimento de quando um Padrão em particular melhora a arquitetura do software. Este curso possui o objetivo de lhe prover essa experiência com a parte prática no uso de cada um dos 23 Padrões de Projeto do GoF.

Preview 02:44

Editores de Java

  • Página Oficial do IntelliJ IDEA - https://www.jetbrains.com/idea/
  • Página Oficial do Eclipse - http://www.eclipse.org/
  • Página Oficial do BlueJ - https://bluej.org/
Preview 00:40
+
Padrões Criacionais
5 Lectures 31:15

Aplicação

  • Um sistema deve ser independente de como seus elementos são criados, compostos e representados.

  • Um sistema deve ser configurado para trabalhar com uma única família dentre múltiplas famílias de produtos.

  • Uma família de produtos relacionados é projetada para ser usada em conjunto, e há a necessidade de reforçar essa restrição.

  • Se quiser criar uma biblioteca de classes de produtos, revelando apenas suas interfaces e não suas implementações.

Preview 09:20

Aplicação

  • A criação de um objeto complexo deve ser independente das partes que o compõem e de como estas são conectadas entre si.

  • O processo de construção deve permitir a criação de diferentes representações do objeto construído.

Padrão Criacional - Builder
08:30

Aplicação

  • A classe não pode antecipar a que será criada.

  • Deseja que suas subclasses especifiquem os objetos que devem ser criados.

  • Classes delegam responsabilidades para uma dentre várias subclasses auxiliares.

Padrão Criacional - Factory Method
05:09

Aplicação

  • As classes instanciadas são especificadas em tempo de execução.

  • Evitar a construção de uma hierarquia de classes de fabricação paralela a uma hierarquia de classes de produtos por elas fabricados.

  • Quando as instâncias de uma classe podem ter algumas poucas variações de estado, é mais simples definir uma quantidade de protótipos e cloná-los do que criar os respectivos estados manualmente.

Padrão Criacional - Prototype
03:43

Aplicação

  • Deve haver exatamente uma única instância de uma classe, e esta deve estar disponível a todos os clientes de um ponto de acesso bem definido.

  • Uma única instância possa ser estendida por herança, e os clientes serem capazes de utilizar essa instância estendida sem terem de modificar o seu código.

Padrão Criacional - Singleton
04:33
+
Padrões Estruturais
7 Lectures 48:03

Aplicação

  • Usar uma classe já existente porém sua interface não combina com a esperada pelo cliente.

  • Desejar criar uma classe reutilizável que coopera com classes não relacionadas ou não previstas, isto é, classes que não necessariamente tenham interfaces compatíveis.

Padrão Estrutural - Adapter
06:18

Aplicação

  • Destinado a evitar uma ligação permanente entre a abstração e sua implementação. O que ocorre, por exemplo, quando a implementação deve ser selecionada ou trocada em tempo de execução.

  • Mudanças na implementação de uma abstração não devem ter impacto nos clientes, isto é, seu código não deve ter que ser recompilado.

  • Quando se deseja esconder completamente a implementação dos clientes, evitando que a representação de uma classe seja realizada através da interface dessa classe.

  • Para compartilhar uma implementação entre vários objetos, e este fato deva estar oculto para os clientes.

Padrão Estrutural - Bridge
07:49

Aplicação

  • Representar hierarquias de objetos do tipo todo/parte.

  • Tratar todos os objetos uniformemente e ignorar a diferença entre composições de objetos individuais.

Padrão Estrutural - Composite
08:50

Aplicação

  • Adicionar as responsabilidades a objetos individuais de forma dinâmica e transparente sem afetar outros objetos.

  • Evitar a explosão de subclasses para suportar cada combinação produzidas por um grande número de extensões independentes.

Padrão Estrutural - Decorator
09:17

Aplicação

  • Oferecer uma interface simples para um subsistema complexo. Subsistemas ficam cada vez mais complexos a medida que evoluem.

  • Desacoplar o subsistema dos clientes e dos outros subsistemas e promover a independência e portabilidade desses subsistemas, para evitar a existência de muitas dependências entre clientes e as classes de implementação de uma abstração.

Padrão Estrutural - Façade
06:50

Aplicação

  • Minimizar uma grande quantidade de objetos, que acarreta custos no armazenamento, pois uma aplicação pode usar um grande número de objetos.

  • Substituir grupos de objetos por, relativamente, poucos objetos que possam ser compartilhados, uma vez que o estado extrínseco é removido deles e colocado em outro lugar.

Padrão Estrutural - Flyweight
05:22

Aplicação

  • Necessitar de uma referência mais versátil ou sofisticada para um objeto do que um simples ponteiro.

Padrão Estrutural - Proxy
03:37
+
Padrões Comportamentais
11 Lectures 01:33:03

Aplicação

  • Mais de um objeto pode tratar uma requisição, e estes não são conhecidos a priori. O objeto a tratar a requisição deve ser definido automaticamente.

  • Pare emitir uma requisição para um dos vários objetos envolvidos, sem especificá-lo explicitamente.

  • O conjunto de objetos que pode manipular uma requisição deve ser especificado dinamicamente.

Padrão Comportamental - Chain Of Responsability
10:35

Aplicação

  • Parametrizar objetos por uma ação a ser executada.É  uma substituição da Orientação a Objetos das funções de call back.

  • Especificar, enfileirar ou executar requisições em diferentes momentos.

  • Suportar log das últimas modificações, de forma que possam ser reaplicadas no caso de uma queda do sistema.

  • Estruturar um sistema em torno de operações de alto nível construídas a partir de operações primitivas, como no caso de transações.

Padrão Comportamental - Command
11:07

Aplicação

  • A gramática é simples.

  • A eficiência não é o ponto crítico.

Padrão Comportamental - Interpreter
09:19

Aplicação

  • Acessar o conteúdo de um objeto agregado sem expor sua representação interna.

  • Suportar múltiplas varreduras de objetos agregados.

  • Prover uma interface uniforme para varrer diferentes estruturas agregadas.

Padrão Comportamental - Iterator
11:35

Aplicação

  • Em um conjunto de objetos que se comunica de uma maneira bem definida, porém complexa o que resulta em interdependências desestruturadas e difíceis de entender.

  • O reuso de um objeto é difícil por causa das suas referências e comunicação com outros objetos.

  • Para um comportamento que é distribuído entre várias classes e deve ser customizado sem um conjunto de subclasses.

Padrão Comportamental - Mediator
03:39

Aplicação

  • O estado instantâneo de um objeto deve ser salvo até que possa ser restaurado.

  • Um acesso direto a interface para obter o estado do objeto faz com que sejam expostos detalhes de implementação o que quebraria seu encapsulamento.

Padrão Comportamental - Memento
05:52

Aplicação

  • Uma abstração tem dois aspectos, e um depende do outro. Encapsulando esses aspectos em objetos separados fará com que se possa variá-los e reusá-los independentemente.

  • Uma mudança em um objeto requer uma mudança em outros, e não se sabe como esses outros objetos realizam essas mudanças.

  • Um objeto deve poder notificar outros objetos sem assumir nada sobre eles.

Padrão Comportamental - Observer
07:08

Aplicação

  • O comportamento de um objeto depende de seu estado, e este deve ser mudado em tempo de execução conforme as mudanças ocorridas em seu estado.

  • Colocar cada ramo de uma estrutura condicional em uma classe separada. Dessa maneira, o estado do objeto pode ser tratado com seus próprios direitos que podem variar independentemente de outros.

Padrão Comportamental - State
10:20

Aplicação

  • Configurar uma classe com um entre vários comportamentos possíveis.

  • Diferente variação de um algoritmo são implementadas como uma classe hierárquica de algoritmos.

  • Evitar a exposição de complexas estruturas de dados de algoritmos específicos.

Padrão Comportamental - Strategy
08:24

Aplicação

  • Implementar partes invariáveis de um algoritmo e deixar que as subclasses implementem os comportamentos variáveis.

  • Fatorar comportamentos comuns entre subclasses e localizar uma classe comum para evitar duplicação de código.

Padrão Comportamental - Template Method
09:00

Aplicação

  • Uma estrutura de objetos contém várias classes de objetos com diferentes interfaces, e deve fazer operações nesses objetos que dependem de suas classes concretas.

  • Guardar operações relacionadas juntas em uma classe. 

  • Para obter operações apenas para aquelas aplicações que necessitem delas quando uma estrutura de objetos é compartilhada por várias aplicações.

Padrão Comportamental - Visitor
06:04
About the Instructor
Fernando Anselmo
3.7 Average rating
5 Reviews
37 Students
1 Course
Analista de Sistemas Sênior

Profissional desde 1987. Atualmente é um especialista com forte experiência em Java e Banco de Dados Oracle, PostgreSQL e MS-SQL Server. Escolhido como Java Champion desde Dezembro/2006 e Coordenador do DFJUG. Experiência em JBoss e diversos frameworks de mercado e na interpretação das tecnologias para sistemas e aplicativos. Realização de análise de acordo com as especificações, normas, padrões e prazos estabelecidos. Disposição para oferecer apoio e suporte técnico a outros profissionais, autor de 15 livros e diversos artigos em revistas especializadas, palestrante em diversos seminários sobre tecnologia. Atualmente ocupa o cargo de Analista de Sistemas Sênior na BBTur.