O conceito de Programação Orientada a Objetos já é bem antiga e remonta aos anos 70 primordialmente. E atualmente é usado de fato por grande parte dos sistemas.
A Programação Orientada a Objetos, também conhecida pela sua sigla POO, em inglês OOP – Object Oriented Programming. É um paradigma de programação, também chamado de Paradigma de Desenvolvimento, que utiliza o conceito de objetos para representar elementos do mundo real. Desse modo os objetos podem conter atributos, estados e comportamentos. Entretanto antes do POO o paradigma da Programação Procedural, ou a Programação Estruturada era o mais usado no desenvolvimento de software.
A Primeira linguagem considerada POO é a Smalltalk. Considerada puramente orientada a objetos. Ela introduziu o uso de máquina virtual que permite que o software seja desenvolvido independente da plataforma. Possui uma IDE (Integrated Development Environment), ou seja, ambiente de desenvolvimento integrado algo incomum para época, e compilação JIT (Just-in-time), além da arquitetura MVC (Model-View-Controller). Como resultado a Linguagem Smalltalk influenciou várias das principais linguagens modernas. Saiba mais sobre o que é Programação Orientada a Objetos a seguir.
Principais Características
Os quatro pilares básicos desse paradigma são:
Herança
Um objeto (filho) pode ser criado baseado nas características de outro (pai). O objeto principal, chamado de objeto pai, possui seus próprio atributos (propriedades) e métodos (funções). Assim quando criado o objeto filho ele herdará esses atributos e métodos de seu objeto pai.
Polimorfismo
Um método (função) pode ser reescrito para o objeto filho. Assim a função no objeto filho ganha um comportamento diferente do herdado pelo objeto pai.
Encapsulamento
Cria uma proteção para os objetos. O Encapsulamento protege de uso indevido. Nesse contexto existem os modificadores de acesso que servem para evitar que determinada classe tenham acesso um código fora de sua lógica de programação a saber:
-
public
: disponível para qualquer acesso externo a classe;
-
protected
: disponível o acesso das classes filhas, protegido para acesso externo;
-
private
: acesso disponível somente dentro da própria classe.
Abstração
O objeto é representado de forma abstrata. Uma classe pai (superclasse) é criada mas a implementação só é feita na classe filha. Não é possível criar um objeto na superclasse pois ela não executa nenhum método. Esse conceito também pode ser entendido como a união das características do Encapsulamento e do Polimorfismo.
Programação Orientada a Objetos vs Programação Estruturada
Programação Estruturada têm ênfase em outras características como sub-rotinas e laços de repetição.Nela os programas seguem em forma sequencial. Assim ela segue a ordem de sequência, condição e repetição. Esse paradigma possui limitações e não é possível o uso do encapsulamento. Um exemplo é a Linguagem C.
Design Patterns
Entender o que é Design Patterns é relativamente simples pois nada mais é do que padrões de projeto. A ideia principal surgiu do livro “A Pattern Language: Towns, Buildings, Construction” em português “Uma Linguagem de Padrões”. Nele é listada uma série de problemas e suas possíveis soluções.
Conclusão
Muitas das linguagens mais utilizadas atualmente possuem orientação a objetos como C++, C#, Java, PHP, Python, Ruby, Dart, Perl, Objective-C, entre outras.
Em resumo as principais vantagens do POO são: a reutilização de código e independência entre as partes do software, manutenção de código e criação de bibliotecas.
Por fim entre as desvantagens estão: maior uso de memória, maior tempo de aprendizado para o programador, pode não ser o pais adequado para o seu projeto.
Deixe um comentário