Padrões de Projeto em JAVA: 23 Padrões do GoF na prática
4.5 (2 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.
7 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
4.5 (2 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.
7 students enrolled
Created by Fernando Anselmo
Last updated 7/2017
Portuguese
Current price: $10 Original price: $65 Discount: 85% off
5 hours left at this price!
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
Students Who Viewed This Course Also Viewed
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
4.5 Average rating
2 Reviews
7 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.