Desconstruindo a Orientação a Objetos (ou esquecendo o que você aprendeu na escola) - Parte 1
Lembro-me como se fosse ontem (que poético isso) a primeira vez que eu ouvi sobre a orientação a objetos. Depois de muito tempo lidando com linguagens puramente procedurais (C, COBOL, Visual Basic), eu ouvi falar sobre esse novo paradigma e é claro, sobre uma das linguagens que usa ele, o Java. A primeira coisa que eu ouvi foi “a orientação a objetos é ótima para construir interfaces gráficas”, e eu sei, que se você tem o mínimo de noção sobre o que é orientação a objetos, sabe que isso foi uma enorme canelada*. Já na faculdade, eu tive aulas de orientação a objetos, iniciando com C++ e no final, em Java. Eu já tinha estudado por conta um pouco sobre orientação a objetos e vi como destacavam os mecanismos de herança, e até hoje muitas literaturas ainda dão a maior ênfase na herança. Porém uma aula que me fez ver como a orientação a objetos é poderosa foi sobre o polimorfismo e a capacidade de chamar métodos de maneira dinâmica durante a execução. E é claro, para não dizer que não falei das flores, aprendemos sobre o encapsulamento, o que era basicamente usar private no que queria esconder e public no que queria exibir. Hoje, depois de muito tempo e um pouco de experiência, eu vi que aprendemos tudo ao contrário. ...