Pilares do Paradigma Orientado a Objetos (Parte 1)

O paradigma orientado a objetos é algo que não há como evitar caso deseje ser um desenvolvedor. Toda aplicação exige uma organização e metodologia para desenvolvimento, não basta abrir o editor de texto e digitar.

Alguns princípios da orientação a objetos estão listadas abaixo:

Encapsulamento (encapsulation)

Toda aplicação é composta de pequenos elementos que unidos concluem o produto final. É comum a ocorrência de métodos (“funções”) que dependem de outros para concluir sua operação. Um método que delega um objeto a fazer uma determinada parte de sua operação não precisa saber como ele faz, para ele é suficiente saber que dada uma entrada ele manipula ela e retorna o que deseja. Essa metodologia de tratamento da entrada não transparente é o que se chama de encapsulamento.

Esse encapsulamento pode ocorrer de duas formas: por delegação ou métodos privados.

  • delegação é quando usamos um objeto instânciado de outra classe que contém métodos que auxiliam a função de um método;
  • métodos privados são métodos internos da classe, ou seja, não são vistos externamente, servem apenas para concluir pequenas operações.

Na orientação a objetos é comum subdividir tarefas criando pequenos blocos com uma única finalidade e não classes lotadas de linhas de códigos.

Em resumo, todo método de uma classe é encapsulada, apresentando ao exterior apenas as suas operações (nomes dos métodos), para o usuário não importa como ela faz.

Especialização (specialization)

A especialização esta relacionada a herança. Em geral, muitas coisas compartilham propriedades bases. Uma moto, carro e bicicleta são meios de transporte. Embora cada um possua suas particularidades que os diferenciam. Poderiamos partir de uma base admitindo que todos sejam veiculos, e poderíamos especificar/especializar essa classe consideram veiculos motorizados ou não. Tudo dependeria da forma que tratamos nosso projeto. Poderíamos subdividir em classes de objetos de 2 rodas ou 4 rodas.

Uma caracteristica importante é que uma classe pode apenas especializar uma outra classe, ou seja, deve-se projetar bem.

Quando desejamos caracterizar mais uma classe podemos implementar uma interface. Em geral, uma interface representa um tipo de dado. Uma propriedade que se mantem a todos que a implementarem, não importando como cada um faz.

This entry was posted in oop. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>