DEV Community

Francisco Zanfranceschi
Francisco Zanfranceschi

Posted on

[Conceito] - OO Mal Explicado para Iniciantes

Conteúdo original em https://twitter.com/zanfranceschi/status/1574958476841078785


Ei dev iniciante,

Da série "OO MAL EXPLICADO".

Uma das coisas que mais me atrapalhou quando estava no comecinho – aprendendo OO – era a afirmação "modele objetos baseados no mundo real".

Isso dá margem pra alguma má interpretação a quem é bem iniciante.

cc @sseraphini

[+]


A gente começa com aqueles exemplos de Gato que mia, Carro que vira e que é também um veículo, etc.

Pô, faz sentido até. Um gato na vida real mia mesmo, né?

[+]


O problema é quando a gente começa a fazer sistemas reais, com usuários, contas corrente, lojas, atendentes, vendedores, etc.

[+]


Com base no que disse no início – pra sistemas reais –, as coisas podem começar a não fazer sentido e/ou se encaixarem.

Por exemplo, imagina a gente colocar comportamento (métodos mesmo) apenas nos objetos que representam coisas que se mexam no mundo real.

[+]


Tudo que fosse inanimado no mundo real, só teria estado (variáveis, propriedades, etc.). E apenas as coisas animadas (êêê 🥳) é que poderiam ter métodos.

Carrinho, estoque, loja, conta, etc. nunca teriam métodos. Apenas usuário, atendente, etc é que poderiam ter.

[+]


Um carrinho nunca trocaria mensagens com um produto, né?

Na vida real, bota um carrinho de compras do Pão de Açúcar parado olhando pra cara duma caixa de leite. Nada aconteceria sem a interação dum ser humano.

[+]


Pra você que não é iniciante, as coisas que eu disse acima podem ser óbvias e até meio bobas, mas podem não ser pra quem está bem no início do aprendizado de Orientação a Objetos.

[+]


Bom, o que eu gostaria de dizer afinal (parafrasear na verdade, mas não lembro a fonte) é que Orientação a Objetos deveria REPRESENTAR UM MODELO QUE RESOLVA OS PROBLEMAS DO MUNDO REAL e não apenas imitar os objetos reais do mundo.

É isso.

Top comments (0)