Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Padrões de Projeto em Java: Um Guia Prático
Rating: 4.5 out of 5(8 ratings)
229 students

Padrões de Projeto em Java: Um Guia Prático

Alcance a excelência em Java: o guia definitivo para padrões de projeto!
Created byNataniel Paiva
Last updated 3/2024
Portuguese
Portuguese [Auto],

What you'll learn

  • Dominar o Singleton: garantir uma única instância de classe.
  • Utilizar Singleton Double Checked Locking para eficiência e segurança.
  • Explorar o Factory Method para criar objetos sem expor a lógica de instância.
  • Aprofundar-se no Abstract Factory para gerenciar famílias de objetos relacionados.
  • Comparar Strategy Vs No Strategy para ver o impacto na solução de problemas.
  • Decifrar Aprender o Flyweight para minimizar o uso de memória com objetos compartilhados.o Adapter para tornar interfaces incompatíveis compatíveis
  • Mergulhar no Strategy Pattern para encapsular algoritmos intercambiáveis.

Course content

1 section17 lectures2h 37m total length
  • Singleton 19:32

    Nesta aula exploramos o fascinante mundo dos padrões de design de software, focando no padrão Singleton com a linguagem Java. Perfeito para programadores intermediários e avançados que querem aprofundar seus conhecimentos!

    Introdução ao Padrão Singleton: Entenda o que é o padrão Singleton, sua importância no desenvolvimento de software, e como ele pode ser um game-changer em seus projetos!

    Implementação Passo a Passo:  Acompanhe uma demonstração detalhada da implementação do padrão Singleton em Java, com dicas de código e práticas recomendadas.

    Cenários de Uso: Descubra diferentes cenários onde o padrão Singleton se encaixa perfeitamente, com exemplos práticos que vão iluminar sua jornada de programação.

  • Singleton 2 Double Checked Locking6:58

    Singleton em Multithreading: Descubra como o Singleton se comporta em um ambiente de threads concorrentes e por que isso é super importante!

    Double Checked Locking Explicado: Vou te guiar passo a passo na implementação dessa técnica incrível para tornar seu Singleton eficiente e seguro em threads!

    Se você curtiu nossa primeira parte sobre Singleton, vai adorar essa continuação! Perfeita para desenvolvedores Java que buscam aprimorar suas habilidades e mergulhar fundo nos padrões de design.

  • Factory Method8:43

    Conceitos Básicos do Padrão Factory Method: Entenda o que é este padrão, por que é importante e como ele funciona no contexto da programação orientada a objetos.

    Aplicação no Mundo Real: Descubra como o padrão Factory Method pode ser aplicado na criação de conexões com diferentes tipos de bancos de dados, como MySQL e SQLite.

    Exemplo de Código Passo a Passo: Acompanhe enquanto eu escrevo um código de exemplo em Java, demonstrando a implementação prática desse padrão.

  • Abstract Factory12:31

    Fundamentos do Abstract Factory: Mergulhamos nos princípios básicos deste padrão de design essencial, explicando como ele ajuda a criar famílias de objetos sem especificar suas classes concretas.

    Aplicação Prática com Carros: Usamos o exemplo de carros para ilustrar como o Abstract Factory pode ser aplicado na vida real. Desde carros simples até modelos robustos e luxuosos, mostramos como diferentes fábricas criam diferentes tipos de carros com características únicas.

    Código Passo a Passo: Acompanhe conforme codificamos exemplos em Java, dando vida ao conceito de uma maneira que você pode facilmente replicar e entender.

  • Builder15:08

    Conceitos Chave: Uma introdução ao padrão de projeto Builder, incluindo quando e por que usá-lo.

    Código Passo a Passo: Vamos codificar juntos exemplos práticos para ilustrar como implementar o padrão Builder em Java. Incluímos um exemplo do mundo real para facilitar o entendimento.

    Vantagens e Desvantagens: Uma discussão detalhada sobre as vantagens e as possíveis armadilhas do padrão Builder, ajudando você a tomar decisões informadas em seus projetos.

    Dicas de Thread-Safety: Exploramos como o padrão Builder pode ajudar a criar objetos thread-safe, um aspecto crucial no desenvolvimento de aplicações Java modernas.


  • Prototype9:17

    Vantagens do Padrão Prototype Eficiência na criação de objetos Flexibilidade na geração de instâncias Desvantagens do Padrão Prototype Complexidade na clonagem de objetos Gerenciamento de cópias profundas vs. superficiais Demonstração com Códigos em Java Criando uma classe Prototype básica Implementando clonagem em um cenário prático.

  • Adapter13:16

    Conceitos Teóricos: Entenda o que é o Padrão Adapter, suas partes e seu propósito no design de software. Aplicações Práticas: Veja exemplos do mundo real onde o Padrão Adapter é indispensável. Código em Ação: Acompanhe enquanto escrevemos código para implementar o Padrão Adapter em cenários, como sistemas de pagamento.

  • Composite9:55

    Conceitos Fundamentais: Uma explicação detalhada do padrão Composite, incluindo seus componentes principais: Componente, Folha e Composto. Exemplos em Java: Demonstrarei como implementar o padrão Composite com exemplos claros e práticos em Java, perfeitos para fortalecer sua compreensão. Aplicações Reais: Discutiremos como e quando usar o padrão Composite em cenários reais de programação.

  • Proxy7:23

    Conceitos Fundamentais do Padrão Proxy: Explicamos o que é o padrão Proxy, por que é usado, e seus diversos tipos, incluindo Proxy Remoto, Proxy Virtual e Proxy de Proteção. Vantagens do Uso do Proxy: Descubra como o Proxy pode ajudar em situações como controle de acesso, carregamento sob demanda (Lazy Loading) e adição de funcionalidades como logging e verificações de segurança. Exemplo Prático com Java: Acompanhe um exemplo de código Java passo a passo, onde implementamos um Proxy Virtual para um objeto pesado, demonstrando o carregamento sob demanda de uma imagem.

  • Flyweight9:34

    Fundamentos do Flyweight: Entenda o que é e como funciona este padrão incrível. Vantagens e Desvantagens: Descubra quando e por que usar o Flyweight em seus projetos. Exemplo Prático: Vou guiá-los através de um exemplo vibrante em Java, onde transformamos a teoria em ação!

  • Facade6:37

    O que é o Padrão Facade e por que ele é importante. Como implementar o Padrão Facade em Java com exemplos práticos. Dicas e truques para maximizar a eficiência do seu código.

  • Strategy Pattern16:43

    O básico do Padrão Strategy e por que ele é tão útil. Como aplicar o Strategy para criar um sistema de pagamento flexível. A implementação de diferentes estratégias de pagamento, como cartão de crédito e PayPal. Dicas de como tornar seu código mais modular e testável. Boas práticas de programação em Java.

  • Strategy em cenários reais6:15

    Aprenda como estruturar seu código para manejar diferentes estados de uma vistoria - Aprovado, Pendente e Reprovado - de forma elegante e extensível em Java. Vou guiá-lo através da implementação de uma solução de design que simplifica a adição de novos estados e comportamentos sem modificar o código existente.

  • Strategy vs No Strategy7:41

    Identificar cenários que se beneficiam imensamente do Strategy. Seguir a refatoração passo a passo e aplicá-la aos seus próprios projetos. Deixar para trás as práticas de codificação que limitam a expansão e a flexibilidade.

  • Padrão Strategy: Testes Unitários Nunca Foram Tão Fáceis!4:11

    O que é o Strategy? Vamos começar do básico! Uma explicação simples e divertida sobre o padrão Strategy.  Strategy + Testes Unitários = Descubra como essa combinação pode tornar sua vida de programador muito mais fácil e seus códigos super testáveis. Hands-on Coding: Veja o Strategy em ação! Exemplos práticos e códigos que você pode usar imediatamente.

  • Entendendo o Princípio da Responsabilidade Única (SOLID) com Java12:48

    Conceito de SRP: Uma explicação detalhada do que é o Princípio da Responsabilidade Única, por que é importante e como ele pode transformar a maneira como você escreve código. Exemplos do Mundo Real: Vamos converter a teoria em prática com exemplos concretos de código Java, demonstrando como aplicar o SRP para criar um código mais limpo, manutenível e modular. Discussão sobre Design de Software: Insights sobre como o SRP influencia as decisões de design e a arquitetura geral de um aplicativo.


  • Agradecimentos e Bônus0:54

Requirements

  • Conhecimento básico de programação em Java: compreensão de sintaxe, estruturas de controle e tipos de dados.
  • Entendimento dos conceitos fundamentais de Orientação a Objetos (OO): classes, objetos, herança, polimorfismo, encapsulamento e abstração.
  • Familiaridade com o ambiente de desenvolvimento integrado (IDE) Java: habilidade para configurar e utilizar IDEs como Eclipse ou IntelliJ.
  • Noções básicas de gestão de dependências e construção de projetos Java: experiência com ferramentas como Maven ou Gradle.
  • Compreensão de tratamento de exceções e depuração em Java: capacidade para identificar e corrigir erros no código.

Description

Neste curso abrangente sobre padrões de design em Java, mergulhamos fundo no universo das soluções elegantes para desafios comuns enfrentados por desenvolvedores de software. Padrões de design são, em essência, soluções consagradas que atuam como modelos para resolver problemas de design de código de forma eficaz, tornando o desenvolvimento de software não apenas mais rápido, mas também significativamente mais eficiente.

Ao longo deste curso, você será introduzido aos padrões de design mais cruciais, divididos em três categorias principais: Criacionais, Estruturais e Comportamentais. Cada padrão é apresentado através de exemplos práticos, destacando como podem ser aplicados para resolver problemas específicos de design de software.

Nos Padrões Criacionais, exploramos desde o Singleton, em suas duas formas, até métodos de fábrica, fábrica abstrata, construtor e protótipo. Esses padrões são vitais para a criação de objetos de maneira controlada, enfatizando a flexibilidade e a reutilização do código.

Avançando para os Padrões Estruturais, investigamos o Adapter, Composite, Proxy, Flyweight e Facade. Estes padrões são essenciais para criar grandes estruturas de software, garantindo que os componentes trabalhem juntos de maneira harmoniosa e eficiente.

Na categoria dos Padrões Comportamentais, destacamos o Strategy Pattern, oferecendo insights valiosos sobre a importância de escolher as estratégias de algoritmos corretas, e a comparação entre usar e não usar o Strategy Pattern, fornecendo uma compreensão profunda de suas aplicações práticas.

Além disso, este curso oferece um mergulho no princípio 'S' do SOLID, essencial para a manutenção e a escalabilidade do código, assegurando que você adquira conhecimentos que vão além dos padrões de design tradicionais.

Este curso é uma oportunidade imperdível para desenvolvedores que desejam aprimorar suas habilidades em Java, oferecendo não apenas teoria, mas práticas recomendadas e exemplos reais que garantem uma compreensão completa dos padrões de design e como eles podem ser aplicados para criar software robusto, escalável e fácil de manter. Prepare-se para transformar sua maneira de pensar e trabalhar com desenvolvimento de software, adquirindo um arsenal de técnicas e conhecimentos que farão de você um desenvolvedor Java altamente competente e procurado no mercado.

Veja os detalhes:

Creational Patterns

  • Singleton 1

  • Singleton 2  Double Checked Locking

  • Factory Method

  • Abstract Factory

  • Builder

  • Prototype

Structural Patterns

  • Adapter

  • Composite

  • Proxy

  • Flyweight

  • Facade

Behavioral Patterns

  • Strategy Pattern

  • Strategy Vs No Strategy

Nesse curso também coloquei uma aula sobre o S do SOLID. Sem dúvidas você não vai se arrepender em conferir.



Who this course is for:

  • Desenvolvedores Java em Início de Carreira: Aqueles que têm alguma experiência com Java e buscam aprofundar seus conhecimentos em padrões de projeto para melhorar a qualidade e a manutenibilidade do código.
  • Profissionais de TI com Experiência em Outras Linguagens: Programadores experientes em outras linguagens que querem aprender Java e padrões de projeto para expandir suas habilidades ou transitar para projetos baseados em Java.
  • Estudantes de Ciência da Computação e Cursos Relacionados: Alunos que estão cursando graduação ou pós-graduação e desejam complementar seus estudos com conhecimentos práticos em padrões de projeto aplicados em Java.
  • Arquitetos de Software e Designers: Profissionais que planejam a estrutura de sistemas complexos e buscam maneiras eficientes de aplicar padrões de projeto para resolver problemas de design de software.
  • Desenvolvedores Full Stack: Programadores que trabalham tanto no front-end quanto no back-end e querem melhorar a qualidade do código no lado do servidor com padrões de projeto em Java.