Evite IF/ELSE e HERANÇA aplicando o padrão STRATEGY!

Поделиться
HTML-код
  • Опубликовано: 12 дек 2024

Комментарии • 108

  • @adibauI
    @adibauI 3 года назад +34

    Video sensacional!! dark mode deveria ser o default theme da internet inteira :)

  • @antoniomarcos5664
    @antoniomarcos5664 Месяц назад

    Show de bola, parabéns. Clareza 10 e aplicabilidade bem definida, assim como a motivação, as vantagens e desvantagens.

  • @Matheusotto182
    @Matheusotto182 3 года назад +1

    Felizão com esse darkmode. Mto melhor Rinaldo. Parabéns pelo vídeo.

    • @rinaldodev
      @rinaldodev  3 года назад

      Boa, Matheus! Também curti.

  • @MaykeKen-yo3ww
    @MaykeKen-yo3ww 11 месяцев назад

    O vídeo mais completo que já vi sobre strategy. Aprendi novas formas de fazer, obrigado. Parabéns!

  • @n.almeida4972
    @n.almeida4972 2 года назад +4

    Darkmode sempre !!!!!!! E adoro seus vídeos cara. Muito conhecimento você tem.

  • @nettoaoquadrado
    @nettoaoquadrado Год назад +1

    Muito obrigado! Está me ajudando muito.

  • @AnaNeriDev
    @AnaNeriDev 2 года назад +2

    Baita aula! Parabéns

  • @NelsonAntonio-ys4yk
    @NelsonAntonio-ys4yk Год назад +2

    Primeiramente parabéns por sua iniciativa, didática incrível, se mostrou como o MELHOR conteúdo de TODOS(gringos e brasileiros)sobre padrões de projeto criado por que CONHECE e sabe TRANSMITIR!!! Já fico no aguardo do observer, outro que preciso dominar!!!

  • @DecoDeveloper
    @DecoDeveloper 2 года назад +1

    Ótimo conteúdo e dicas! O tema dark ficou ótimo. Obrigado pela aula.

    • @rinaldodev
      @rinaldodev  2 года назад

      De nada! Aproveite os outros conteúdos também!

  • @claudiorobertoas
    @claudiorobertoas 3 года назад +1

    Gostei mais desse fundo escuro. Ótimos vídeos. Estou aprendendo muito. Parabéns.

    • @rinaldodev
      @rinaldodev  3 года назад

      Valeu, Cláudio! Que bom que está ajudando, e muito obrigado pelo apoio!

  • @raonileandro3825
    @raonileandro3825 4 месяца назад

    conteúdo de alta qualidade, parabéns!

  • @dowglasmaia-dev
    @dowglasmaia-dev 3 года назад +1

    Show, obrigado por compartilhar este conhecimento!!!!! Deus o abençoe.

  • @renatorodrigues5886
    @renatorodrigues5886 3 года назад +1

    Dark Mode com certeza, parabéns pelo conteúdo.

  • @valdeirnascimento7737
    @valdeirnascimento7737 Год назад +1

    Excelente aula! meu voto vai no Dark Mode ;)

    • @rinaldodev
      @rinaldodev  Год назад

      Valeu, Valdeir! Agora tá tudo no Dark Mode! hehe
      E lembra de mandar para os amigos e colegas também!
      E depois desse curso lembra que tem vários outros no canal! Tá lá na página de playlists!
      Dá uma olhada lá que você já pode escolher o que assistir depois dessa!
      www.youtube.com/@rinaldodev/playlists
      Ah, e se curtir bastante o conteúdo, considera se tornar um membro!
      É quase de graça, você ajuda a manter o canal e ainda tem acesso a alguns benefícios, tipo nosso servidor Discord exclusivo!
      ruclips.net/user/rinaldodevjoin

  • @JoaoLima-pq1hm
    @JoaoLima-pq1hm Год назад

    Otimo trabalho e ótima aula, amigo. Muito obrigado.

  • @matheushenrique-ws5km
    @matheushenrique-ws5km 3 года назад +6

    Nuuu cara, vai me ajudar demais, vou começar a ver isso semana que vem na faculdade, bom que já chego treinado kkk

    • @rinaldodev
      @rinaldodev  3 года назад +1

      Haha, top matheus! Já tem algumas aulas aí na playlist pra tu já chegar nas aulas ensinando. :P

  • @samuelsantos409
    @samuelsantos409 3 года назад +1

    Ai sim Naldão! Excelente vídeo como sempre.

  • @AndersonCaxeta
    @AndersonCaxeta 4 месяца назад

    Muito bom! Fundo claro!

  • @williamdesouza3739
    @williamdesouza3739 2 года назад +1

    Muito bom o fundo dark.

  • @willyangamer1
    @willyangamer1 3 года назад +2

    Dark mode, vai me ajudar muito, não vou mais precisar diminuir o brilho nos teus videos ^^

  • @alexandrequeiroz3178
    @alexandrequeiroz3178 3 года назад +1

    O dark mode ficou ótimo!

  • @richardsonhmm
    @richardsonhmm 11 месяцев назад

    Normal Mode…
    Parabéns pelo vídeo!
    ❤🎉

  • @MaxGyn2023
    @MaxGyn2023 3 года назад +1

    Dark Mode ficou top

  • @F43i4N0
    @F43i4N0 3 года назад +1

    Esse assunto é legal hein! Valeuzão

    • @rinaldodev
      @rinaldodev  3 года назад +1

      Valeu, Fabiano! A playlist inteira desse assunto é bem interessante!

  • @RonaldoHabibiDev
    @RonaldoHabibiDev 2 года назад +3

    Grande Rinaldo , gratidão... admiro teu trabalho. parabéns. - Darkmode ok. eu preferi. Mas... é necessário um destaque no cursor do mouse, para acompanhar o foco (teus apontamentos "aqui")

  • @gusrubin
    @gusrubin 3 года назад +1

    Dark mode tá show!

  • @diorgenesmorais6499
    @diorgenesmorais6499 9 месяцев назад

    Gostei da sua explicação, também prefiro dark mode

  • @eliasbatatinha
    @eliasbatatinha 3 года назад +2

    Eu prefiro com fundo preto, ao menos para mim fica mais visível. Parabéns pelo conteúdo, muito bom!!

    • @rinaldodev
      @rinaldodev  3 года назад

      Valeu, Elias! E que bom que curtiu!

  • @ricardomurta
    @ricardomurta 3 года назад +2

    Olá Rinaldo,
    Neste padrão, você informa no main qual é a implementação, certo? "compra.processar(new PagamentoCartaoCredito3());"
    Sendo assim, você informou que o pgto é por cartão de crédito.
    Porém em um cenário que vc vai receber a requisição de compra, ainda não sabendo se é débito ou crédito, como você faria? Seria um if/switch?

    • @rinaldodev
      @rinaldodev  3 года назад +2

      Excelente pergunta, Ricardo! Tem várias opções, e geralmente outros padrões são aplicados. É possível utilizar uma factory, ou Enums que guardam as implementações, ou até um mapa dependendo da situação. De qualquer forma, o ideal é ter um componente que faça esse mapeamento da opção selecionada (que provavelmente vai chegar como um identificador) para a implementação necessária.

  • @GilsonSilvaShow
    @GilsonSilvaShow 2 года назад +2

    Primeiro, parabéns pelos conteúdos e iniciativa. Segundo, assim (Dark Mode) ficou muito melhor. Minha opinião.

  • @GPot-y6z
    @GPot-y6z 2 года назад +1

    Excelente video, quando vai sar o curso de java 17 ? 😁

    • @rinaldodev
      @rinaldodev  2 года назад

      Falei sobre aqui! ruclips.net/video/Fnq7Qodd1g4/видео.html&lc=UgxwjAnJw6sCRnXfoXd4AaABAg

  • @walbergsantos3468
    @walbergsantos3468 3 года назад +2

    Dark ficou muito bom. Aproveitando, como sugestão, poderia fazer um vídeo sobre produtividade usando Eclipse.

    • @rinaldodev
      @rinaldodev  2 года назад +1

      Tá na lista, mas é muita coisa pra falar. Hehe

  • @gustavoballeste8138
    @gustavoballeste8138 3 года назад +1

    Parabéns pelo vídeo e dark mode sempre!

  • @arthuralvespsy
    @arthuralvespsy 3 года назад +2

    Já tinha pensando que tivesse implementado correto o Strategy, porém ao jogar a responsa para cada classe individual eu vi que inferi o padrão (peguei isso na desvantagem) ai tornou-se mais um Factory do que um Strategy em sí... Ótimo video Rinaldão!!! E Come to the dark side hahahaha Agora só falta colar para o lado Intellij da força rsrs

    • @rinaldodev
      @rinaldodev  3 года назад +1

      Ixe, o Eclipse acho que demora pra eu largar. Hehe
      Conhecer onde fica cada função e as teclas de atalho ainda tem sido bem mais útil do que trocar, ainda mais que o Eclipse tem evoluído em um ritmo muito bom. Um dia, quem sabe. :P

  • @gabrielpereiramendes3463
    @gabrielpereiramendes3463 2 года назад +1

    #Excelente!

  • @alcemirjunior2081
    @alcemirjunior2081 3 года назад +1

    dark mode certeza kkkkk parabéns pelo conteúdo, preciso como sempre

  • @CharlesNunes
    @CharlesNunes 3 года назад +3

    Boa noite Rinaldo. Na minha opinião no modo DarkMode fica menos agressivo para minha vista. OBS: Talvez diminuir um pouco tamanho da fonte melhore a didática em detrimento de rolar tela muitas vezes para mostrar a totalidade do código, a questão é encontrar o ponto "ótimo" entre esta redução de fonte e a rolagem, pois se muito reduzir fica pouco legível. No mais agradeço pelos conteúdos abordados.

    • @rinaldodev
      @rinaldodev  3 года назад +1

      Valeu, Raimundo! Muito obrigado pelo feedback e pela sugestão. Esse "equilíbrio" não só é difícil como varia muito de pessoa pra pessoa, mas vou avaliar o melhor formato! Valeu de novo!

  • @afsdab
    @afsdab 3 года назад +1

    Dark mode tá top

  • @mayconb22
    @mayconb22 3 года назад +2

    Já dizia o sábio: "Luzes atraem bugs. Já a IDE dark, não". Vídeo top!

    • @rinaldodev
      @rinaldodev  3 года назад

      Haha! Blz, Maycon, valeu! E muito obrigado pelo apoio! :D

  • @CamilaDiCarvalho
    @CamilaDiCarvalho Год назад

    dark mode claro, otimo video

  • @saddamviera2596
    @saddamviera2596 2 года назад +1

    Obscuro, resaltam as palavras

  •  3 года назад +2

    O que fazer quando a escolha da Strategy depende de if? Por exemplo, imagine um bot de Discord que aceita os comandos !help e !ping, portanto o design intuitivo seria criar as classes HelpCommand e PingCommand que implementam Command. Porém, o comando é recebido como String, dessa forma teria que escolher o seu equivalente, assim caindo nos ifs. Nesse caso qual seria a melhor prática? Tenho impressão que é bem comum que o Strategy caia nesses casos. Qual seria a solução para esse caso? Utilizar uma factory para escolher a instância correta?

    • @rinaldodev
      @rinaldodev  3 года назад +8

      Fala, Ascênio!
      Provavelmente uma Factory irá ajudar.
      Mas você pode fazer vários IFs, se for uma quantidade aceitável, ou trabalhar com um esquema de registrar essas instâncias em memória em um HashMap, por exemplo, é só fazer o Get pelo que o usuário te informou.
      Mas assim, IF não é inimigo não, a questão é não usar demais a ponto de ficar uma lógica muito complexa. Usar IF pra escolher qual componente você chama já é muito melhor do que usá-lo pra programar fluxos completos dentro de um mesmo método.

  • @luanrafaeldacruz
    @luanrafaeldacruz Год назад

    Muito bom seu conteúdo. Comecei a me aprofundar mais em design patterns mas isso fez com que me surgisse novas duvidas principalmente no spring boot. Estudando designs patterns sempre vem a recomendação de programar para interfaces ao invés de implementações, até ai tudo bem mas o spring gerencia o ciclo de vida do objeto então ao trabalhar com composição nós precisamos inserir as implementações. Um exemplo:
    interface CalculoImposto => metodo calcular;
    e tenho duas classes que implementam essa interface, no caso: CalculoImpostoRio, CalculoImpostoSP.
    Enfim tenho uma classe chamada ProcessarPagamento e eu quero injetar a interface CalculoImposto nela e quero que o cliente dessa classe decida qual implementação passar e ai que surgem minhas duvidas kkk devo não tornar a classe ProcessarPagamento um seviço e fazer com que o cliente a instancie manualmente passando assim a dependência desejada? Devo criar um método dentro de ProcessarPagamento onde o cliente irar injetar ali a dependencia? algo como "void definirImposto(CalculoImposto imposto)...?
    Ja vi uma opção com bean mas vi que a classe de configuração que define qual será a instancia e não o usuario da classe. E por fim, eu não deveria a injetar e criar talvez uma fabrica pra retornar esse objeto? ou até mesmo injetar a fabrica?

  • @Victor-bz1xn
    @Victor-bz1xn 3 года назад +1

    Quando postei esse comentário, ainda não tinha assistido todo conteúdo, mas achei melhor fazer o comentário antes que esquecesse... Ficou muito bom o fundo 'dark', principalmente para mim que assisto a noite e em local escuro. Não fica tanta claridade nos olhos e pra mim, não afetou em nada a qualidade do video. Forte abraço.

    • @rinaldodev
      @rinaldodev  3 года назад

      Valeu pelo feedback, victor!

  • @joaobarrosrj
    @joaobarrosrj 3 года назад +1

    Fala Rinaldo. Muita qualidade de vídeo e conhecimento, obrigado pela dedicação !!!
    obs: O código dessa aula não está lá no repositório. :)

    • @rinaldodev
      @rinaldodev  3 года назад +1

      Opa! Valeu, João! Esqueci de fazer o commit, hehe. Ainda hoje subo lá e aviso aqui, ok? Obrigado pelo reconhecimento!

    • @rinaldodev
      @rinaldodev  3 года назад

      Ta lá! :D

  • @Jeffzu
    @Jeffzu 3 года назад +3

    #TeamDarkMode

  • @murilomtds
    @murilomtds 10 месяцев назад

    Essa interface Pagavel, poderia ser uma classe DTO da entidade!

  • @igorsilva736
    @igorsilva736 Месяц назад

    eu não sei no Java, mas no Swift e no Rust, esse pattern fica muito menos verboso usando enum ao invés das implementações de strategy

  • @amfcesar
    @amfcesar 3 года назад +1

    Nodo escuro sempre, por favor.

    • @rinaldodev
      @rinaldodev  3 года назад

      Valeu o feedback, César!

  • @luizrenato3405
    @luizrenato3405 3 года назад +1

    Usar Strategy com Enum's não seria possível?

    • @rinaldodev
      @rinaldodev  3 года назад +1

      Fala, Luiz! Primeiramente obrigado pelo apoio! 👊
      Cara, consigo pensar em algumas formas, como usar o Enum pra garantir um Singleton, ou mudar pequenos comportamentos com funções lambda.
      Mas, não sei exatamente para qual finalidade você tá perguntando. Seria pra isso?

    • @luizrenato3405
      @luizrenato3405 3 года назад

      Fala Rinaldo, acho q seria por essa caminho mesmo, colocando comportamento em cada Enum através da implementação uma interface Strategy (claro se a lógica for simples pra não entulhar o Enum neh).

  • @SandroLucianoGiacomozzi
    @SandroLucianoGiacomozzi 3 года назад +1

    Massa a série. Eu não me acostumo com fundo escuro ☹️

    • @rinaldodev
      @rinaldodev  3 года назад +1

      Eu tô tentando, Sandro. Hehe
      Mas pelos comentários da galera, o Dark tá ganhando de lavada. :(

  • @rodrigoandrade6485
    @rodrigoandrade6485 2 года назад +1

    Achei muita semelhança com um dos tipos de Factory.

  • @alexlemos6207
    @alexlemos6207 3 года назад +1

    Fundo branco por favor!!!!!

    • @rinaldodev
      @rinaldodev  3 года назад +1

      Até agora o Dark tá ganhando de lavada :(
      Muito obrigado pelo feedback!

  • @elieldomartins1037
    @elieldomartins1037 Год назад +1

    Darkmode!!!

  • @thesamirsales
    @thesamirsales 3 года назад +1

    Dark mode!!

    • @rinaldodev
      @rinaldodev  3 года назад +1

      Virou o padrão, Samir!

  • @josemariacostateixeira9301
    @josemariacostateixeira9301 2 года назад +1

    Prefiro a tela clara. Sou meio segueta.

  • @queridodev
    @queridodev Год назад

    Paulo Muzy da programação

  • @dsdcp
    @dsdcp 3 года назад +1

    pensei que ia conseguir assistir a 2x de velocidade, to vendo que vou ter que diminuir para 0.5x

    • @rinaldodev
      @rinaldodev  3 года назад +1

      Fala, Daniel! Se precisar, assiste mais de uma vez. E uma outra dica é estudar o mesmo conteúdo em vários formatos ou de diferentes fontes. Um vai complementando o outro!

    • @dsdcp
      @dsdcp 3 года назад

      @@rinaldodev valew Rinaldo

  • @rinaldofaria
    @rinaldofaria 2 года назад +1

    Dark mode, please. kkk

    • @rinaldodev
      @rinaldodev  2 года назад +1

      Já virou padrão! hehe

  • @leosrbrasil
    @leosrbrasil 3 года назад +1

    Quem não usa dark mode tá errado. Não sei pq ainda não é o padrão

    • @rinaldodev
      @rinaldodev  3 года назад +1

      Pô, Leo, eu não usava até umas semanas atrás. 😅 Mas até agora to curtindo!
      Valeu pelo feedback e pelo apoio. :)

  • @andreygrosbelli7635
    @andreygrosbelli7635 2 года назад +1

    Prefiro darkmode!

  • @cribraga
    @cribraga 18 дней назад

    Dark mode

  • @ellenmayara9129
    @ellenmayara9129 10 месяцев назад

    dark mode >>>>

  • @ricardomurta
    @ricardomurta 3 года назад +1

    Dark

    • @rinaldodev
      @rinaldodev  3 года назад

      Agora é o padrão, Ricardo! Valeu!

  • @regisyamamoto2685
    @regisyamamoto2685 Год назад

    Prefiro DarkMode

  • @RMoreiraRM
    @RMoreiraRM 3 года назад +1

    dark

  • @ricardolacerda1552
    @ricardolacerda1552 2 года назад +1

    Dark