Padrões de Projeto GoF (Design Patterns)
3.9 (79 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.
465 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Padrões de Projeto GoF (Design Patterns) to your Wishlist.

Add to Wishlist

Padrões de Projeto GoF (Design Patterns)

Aprenda de uma maneira simples e eficiente os padrões de projeto GoF.
3.9 (79 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.
465 students enrolled
Last updated 4/2016
Portuguese
Current price: $10 Original price: $50 Discount: 80% off
5 hours left at this price!
30-Day Money-Back Guarantee
Includes:
  • 3.5 hours on-demand video
  • 25 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Aplicar soluções reutilizáveis de software orientado a objetos.
  • Saber quando e como utilizar os 23 padrões de projeto GoF em seus projetos de software.
  • Projetar de forma mais ágil soluções de software com melhor qualidade e com o menor custo.
View Curriculum
Requirements
  • O aluno deverá possuir o mínimo de conhecimento em alguma linguagem de programação orientada a objetos.
  • Os exemplos de códigos contidos neste curso estão escritos em Java, mas se você está familiarizado com outra linguagem orientada a objetos, como C++ ou C#, você irá conseguir acompanhar e entender sem dificuldades este curso.
  • As ferramentas de projeto e desenvolvimento utilizadas neste curso são gratuitas.
Description

Este curso apresentará a você cada um dos 23 padrões de projeto GoF (Gang of Four). Cada padrão é explicado e exemplificado utilizando diagramas de classes UML, exemplos em Java e aplicações típicas que irão lhe ajudar no aprendizado de uma maneira mais eficiente, estimulante e divertida.

Padrões de projeto não é algo exclusivo da computação, os padrões são comuns em várias áreas da engenharia. É uma maneira testada e documentada de alcançar um objetivo qualquer. Os padrões GoF, especificamente, são soluções genéricas para os problemas mais comuns e recorrentes no desenvolvimento de softwares orientado a objetos.

Aprender padrões de projeto irá lhe ajudar a identificar problemas comuns em engenharia de software e saber como resolvê-los utilizando soluções testadas e bem documentadas, consequentemente seu nível em programação aumentará e você passará a produzir softwares de melhor qualidade.

Comece hoje mesmo pelos padrões GoF, considerados por muitos como sendo os mais importantes e utilizados padrões de projeto de software orientado a objetos!

*Os códigos Java e os diagramas de classes UML contidos neste curso estão disponíveis para download, bem como, os slides apresentados.

Who is the target audience?
  • Este curso destina-se à estudantes de computação, programadores, engenheiros e arquitetos de softwares que desejam aprender ou se aperfeiçoar em padrões de projeto GoF.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
31 Lectures
03:31:09
+
APRESENTAÇÃO
6 Lectures 23:52

Uma breve abordagem sobre a UML para entender relacionamento dos diagramas e notações UML na composição dos padrões GoF.

Preview 02:54

Aprender a notação gráfica de uma classe usando o diagrama de classes da UML.

Diagrama de Classes
04:10

Entender todos os tipos de associações entre classes. Cada tipo de associação é exemplificado utilizando a aplicação open source ArgoUML.

Associação entre Classes
08:06

Explanação sobre o conceito de herança (generalização / especialização) entre classes através de exemplos de fácil entendimento.

Herança entre Classes
02:58

Entender a diferença entre os relacionamentos de agregação e composição de classes (o conceito do objeto todo-parte).

Relacionamento de Agregação e Composição
04:06

Entender o relacionamento entre duas classes do tipo cliente (client) e fornecedor (supplier), na qual a classe cliente usa / depende da classe fornecedor.

Dependência entre Classes
01:38

Teste 01
1 question
+
INTRODUÇÃO AOS PADRÕES GOF
1 Lecture 06:49

Entender o principal objetivo dos padrões do projeto GoF e o porquê de eles existirem. Uma breve apresentação dos padrões de criação, estruturais e comportamentais.

Padrões GoF - Pontapé inicial
06:49

Teste 02
1 question
+
GoF - CRIAÇÃO
5 Lectures 40:50

Intenção: garantir que uma determinada classe tenha uma, e somente uma instância, mantendo um ponto global de acesso para a mesma.

Singleton #1
05:18

Intenção: definir uma interface para criar um objeto, mas deixar as subclasses decidirem que classe instanciar.

Factory Method #2
10:07

Intenção: fornecer uma interface para criação de famílias de objetos relacionados ou dependentes sem especificar suas classes concretas.

Abstract Factory #3
09:06

Intenção: separar a construção de um objeto complexo da sua representação de modo que o mesmo processo de construção possa criar diferentes representações.

Preview 08:31

Intenção: especificar os tipos de objetos a serem criados usando uma instância protótipo e criar novos objetos pela cópia deste protótipo

Prototype #5
07:48

Teste 03
1 question
+
GoF - ESTRUTURAL
7 Lectures 55:19

Intenção: desacoplar uma abstração da sua implementação, de modo que as duas possam variar independentemente.

Bridge #6
08:03

Intenção: converter a interface de uma classe em outra interface, esperada pelos clientes. O Adapter permite que classes com interfaces incompatíveis trabalhem em conjunto o que, de outra forma, seria impossível.

Preview 10:12

Intenção: fornece um substituto (surrogate) ou marcador da localização de outro objeto para controlar o acesso ao mesmo.

Proxy #8
06:55

Intenção: agregar dinamicamente responsabilidades adicionais a um objeto.

Decorator #9
06:23

Intenção: compor objetos em estruturas de árvore para representarem hierarquias todo-parte.

Composite #10
08:51

Intenção: fornecer uma interface unificada para um conjunto de interfaces em um subsistema. Façade define uma interface de nível mais alto que torna o subsistema mais fácil de ser usado.

Facade #11
06:17

Intenção: usar compartilhamento para suportar eficientemente grandes quantidades de objetos de granularidade fina.

Flyweight #12
08:38

Teste 04
1 question
+
GoF - COMPORTAMENTAL
11 Lectures 01:22:53

Intenção: encapsular uma solicitação como um objeto, desta forma permitindo parametrizar clientes com diferente solicitações, enfileirar ou fazer o registro (log) de solicitações e suportar operações que podem ser desfeitas.

Command #13
09:30

Intenção: definir uma família de algoritmos, encapsular cada uma delas e torná-las intercambiáveis. Strategy permite que o algoritmo varie independentemente dos clientes que o utilizam.

Strategy #14
06:20

Intenção: permite a um objeto alterar seu comportamento quando o seu estado interno muda. O objeto parecerá ter mudado sua classe.

State #15
07:14

Intenção: definir uma dependência um-para-muitos entre objetos, de maneira que quando um objeto muda de estado todos os seus dependentes são notificados e atualizados automaticamente.

Preview 08:30

Intenção: definir um objeto que encapsula a forma como um conjunto de objetos interage O Mediator promove o acoplamento fraco ao evitar que os objetos se refiram uns aos outros explicitamente e permite variar suas interações independentemente.

Mediator #17
09:49

Intenção: evitar o acoplamento do remetente de uma solicitação ao seu receptor, ao dar a mais de um objeto a oportunidade de tratar a solicitação. Encadear os objetos receptores, passando a solicitação ao longo da cadeia até que um objeto a trate.

Chain of Responsability #18
08:20

Intenção: definir o esqueleto de uma algoritmo em uma operação, postergando (deferring) alguns passos para subclasses. Template Method (Gabarito de Método) permite que subclasses redefinam certos passos de um algoritmo sem mudar a estrutura do mesmo.

Template Method #19
05:16

Intenção: dada uma linguagem, definir uma representação para a sua gramática juntamente com um interpretador que usa representação para interpretar sentenças da linguagem.

Interpreter #20
07:24

Intenção: sem violar o encapsulamento, capturar e "externalizar" um estado interno de um objeto, de maneira que o objeto possa ser restaurado para este estado mais tarde

Memento #21
05:39

Intenção: fornecer um meio de acessar, sequencialmente, os elementos de um objeto agregado sem expor a sua representação.

Iterator #22
07:51

Intenção: representar uma operação a ser executada nos elementos de uma estrutura de objetos. Visitor permite definir uma nova operação sem mudar as classes dos elementos entre os quais opera.

Visitor #23
07:00

Teste 05
1 question

Teste 06
1 question
+
CONSIDERAÇÕES FINAIS
1 Lecture 01:26

Considerações finais e agradecimentos. Uma revisão sobre o assunto ministrado nos vídeos deste curso, orientando o aluno a dar seus próximos passos.

Considerações Finais e Agradecimentos
01:26
About the Instructor
Marco Aurélio Regis
4.3 Average rating
617 Reviews
2,050 Students
8 Courses
Java Software Developer

Experience

Director at Ocram Information Systems - since 2006 until now

Professor of Analysis and Development of Information Systems at UNIP University in Brazil - since 2011 until 2013

Effective Member of Brazilian Computer Society since 2008 until now

Professional Member of Association for Computing Machinery since 2014 until now

IEEE Membership since 2014 until now

Skills

Computer Science, Teaching, Software Engineering, UML, Programming, Java, Design Patterns