Executando verificação de segurança...
3

Não esquece de ler os comentários do kht e meu: https://www.tabnews.com.br/Araujo/conteudo-programacao-orientado-a-objetos-javascript (também: https://www.tabnews.com.br/kht/2b3c6beb-bae5-4c2a-b7d7-3a8e90ceb0e6). Então há controvérsias sosbre esses pilares e outros. Veja também: https://pt.stackoverflow.com/q/215679/101. Eu discuto muito isso no SOpt, e ainda não tenho conclusão definitiva sobre isso, posso até discordar o que eu escrevi.

SOLID é até uma forma que consertar OOP, assim como os design patterns que ficaram famosos por fazer o mesmo. E as pessoas nem sabem o que são DP porque só aprenderam os famosos.

O new pode mudar sua definição em Java nas próximas atualiação (estão prometendo desde a versão 10), assim como em C# não é isso. Tem linguagem que ele é só um alocador de memória.

Não me parece que essa definição de abstração esteja tão correta. https://pt.stackoverflow.com/q/360556/101.

Embora tenha definições diferentes, encapsulamento costuma ser colocar tudo dentro de uma cápsula. Veja em https://pt.stackoverflow.com/q/240186/101. A definição apresentada acima costuma ser chamada de information hiding. Mas é aquela coisa, depende de escola.

Quase 100% das pessoas usam getters/setters errado, é tão prevalente que meio que "virou o certo". Eu nem sou tão contra, mas as pesoas glorificam algo que elas não querem seguir, querem fazer diferente, mas usar o nome porque assim ela passa estar na moda.

O fato do artigo estar capado aqui dá ideia bem errada. O fato de não ter esse e talvez outros comentários no original vai fazer muita gente aprender e/ou perpetuar os erros. Que é o que eu sempre falo do ciclo:

|-> aprende errado -> treina o erro -> executa o erro -> ensina o erro ->|
|----------------------<----------------------------<------------------------<-|

Vamos ver o que vem do resto, eu vou comentando conforme for precisando.

Pode ajudar:

Observou? Faz sentido para você?

Espero ter ajudado. Em geral estou à disposição na plataforma (sem abusos :D)


Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente. Para saber quando, me segue nas suas plataformas preferidas. Quase não as uso, não terá infindas notificações (links aqui).

Carregando publicação patrocinada...
1

Muito obrigado pelos links, vou levá-los em consideração nas próximas partes.

Meu intuito não é entrar a fundo nos conceitos, no post, passo um código, explico bem detalhadamente o que foi feito e proponho o que será feito em seguida e porquê.
Eu tomei uma abordagem de explicar a prática, tentei ser bem didático e não citar conceitos tão complicados no começo.

Por exemplo, sei que o new atua muito como um alocador, mas talvez para ficar mais claro, tenha que explica sobre alocação (memória heap, stack), então simplesmente falo que o new é usado para instanciar um novo objeto.

Realmente pelo jeito que escrevi no final sobre getters/setters (o trecho que coloquei aqui foi um corte da definição que dei no final) pode parecer information hiding, mas durante a prática no post, explico porque fiz determinado atributo privado, explicando que usamos o encapsulamento mais para moldar a forma que queremos usar (ou que outros usem) a classe que criamos.

Acabei esquecendo, mas se quiser, você pode fazer sua contribuição no post, ele é open-source e pode ser acessado aqui toda contribuição é bem-vinda.