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!!!
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")
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! th-cam.com/users/rinaldodevjoin
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?
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.
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
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
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.
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!
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?
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?
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.
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.
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?
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).
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!
Video sensacional!! dark mode deveria ser o default theme da internet inteira :)
Valeu, Bida!
Show de bola, parabéns. Clareza 10 e aplicabilidade bem definida, assim como a motivação, as vantagens e desvantagens.
Darkmode sempre !!!!!!! E adoro seus vídeos cara. Muito conhecimento você tem.
O vídeo mais completo que já vi sobre strategy. Aprendi novas formas de fazer, obrigado. Parabéns!
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!!!
Felizão com esse darkmode. Mto melhor Rinaldo. Parabéns pelo vídeo.
Boa, Matheus! Também curti.
conteúdo de alta qualidade, parabéns!
Ótimo conteúdo e dicas! O tema dark ficou ótimo. Obrigado pela aula.
De nada! Aproveite os outros conteúdos também!
Nuuu cara, vai me ajudar demais, vou começar a ver isso semana que vem na faculdade, bom que já chego treinado kkk
Haha, top matheus! Já tem algumas aulas aí na playlist pra tu já chegar nas aulas ensinando. :P
Muito obrigado! Está me ajudando muito.
Baita aula! Parabéns
Muito bom! Fundo claro!
Ai sim Naldão! Excelente vídeo como sempre.
Valeu, Samuel!
Gostei mais desse fundo escuro. Ótimos vídeos. Estou aprendendo muito. Parabéns.
Valeu, Cláudio! Que bom que está ajudando, e muito obrigado pelo apoio!
Show, obrigado por compartilhar este conhecimento!!!!! Deus o abençoe.
Valeu, Dowglas!
Dark mode, vai me ajudar muito, não vou mais precisar diminuir o brilho nos teus videos ^^
Hehe, valeu!
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")
Otimo trabalho e ótima aula, amigo. Muito obrigado.
Excelente aula! meu voto vai no Dark Mode ;)
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!
th-cam.com/users/rinaldodevjoin
Dark Mode com certeza, parabéns pelo conteúdo.
Valeu, Renato!
Dark Mode ficou top
Valeu!
Esse assunto é legal hein! Valeuzão
Valeu, Fabiano! A playlist inteira desse assunto é bem interessante!
Eu prefiro com fundo preto, ao menos para mim fica mais visível. Parabéns pelo conteúdo, muito bom!!
Valeu, Elias! E que bom que curtiu!
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?
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.
Normal Mode…
Parabéns pelo vídeo!
❤🎉
Muito bom o fundo dark.
Excelente video, quando vai sar o curso de java 17 ? 😁
Falei sobre aqui! th-cam.com/video/Fnq7Qodd1g4/w-d-xo.html&lc=UgxwjAnJw6sCRnXfoXd4AaABAg
Dark ficou muito bom. Aproveitando, como sugestão, poderia fazer um vídeo sobre produtividade usando Eclipse.
Tá na lista, mas é muita coisa pra falar. Hehe
O dark mode ficou ótimo!
Valeu, Alexandre!
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
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
Gostei da sua explicação, também prefiro dark mode
Primeiro, parabéns pelos conteúdos e iniciativa. Segundo, assim (Dark Mode) ficou muito melhor. Minha opinião.
Parabéns pelo vídeo e dark mode sempre!
Valeu, Gustavo! 😀
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.
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!
#Excelente!
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?
dark mode certeza kkkkk parabéns pelo conteúdo, preciso como sempre
Valeu, Alcemir!
dark mode claro, otimo video
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. :)
Opa! Valeu, João! Esqueci de fazer o commit, hehe. Ainda hoje subo lá e aviso aqui, ok? Obrigado pelo reconhecimento!
Ta lá! :D
Dark mode tá show!
Valeu
Obscuro, resaltam as palavras
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?
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.
#TeamDarkMode
Valeu!
Já dizia o sábio: "Luzes atraem bugs. Já a IDE dark, não". Vídeo top!
Haha! Blz, Maycon, valeu! E muito obrigado pelo apoio! :D
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.
Valeu pelo feedback, victor!
Dark mode tá top
Valeu!
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
Usar Strategy com Enum's não seria possível?
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?
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).
Essa interface Pagavel, poderia ser uma classe DTO da entidade!
Achei muita semelhança com um dos tipos de Factory.
Massa a série. Eu não me acostumo com fundo escuro ☹️
Eu tô tentando, Sandro. Hehe
Mas pelos comentários da galera, o Dark tá ganhando de lavada. :(
Nodo escuro sempre, por favor.
Valeu o feedback, César!
Prefiro a tela clara. Sou meio segueta.
Darkmode!!!
Fundo branco por favor!!!!!
Até agora o Dark tá ganhando de lavada :(
Muito obrigado pelo feedback!
pensei que ia conseguir assistir a 2x de velocidade, to vendo que vou ter que diminuir para 0.5x
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!
@@rinaldodev valew Rinaldo
Dark mode!!
Virou o padrão, Samir!
Prefiro darkmode!
Quem não usa dark mode tá errado. Não sei pq ainda não é o padrão
Pô, Leo, eu não usava até umas semanas atrás. 😅 Mas até agora to curtindo!
Valeu pelo feedback e pelo apoio. :)
Paulo Muzy da programação
dark mode >>>>
Dark mode, please. kkk
Já virou padrão! hehe
Prefiro DarkMode
Dark
Agora é o padrão, Ricardo! Valeu!
dark
Valeu!
Dark