Separação de Responsabilidades e Encapasulamento

Descrever os axiomas fundamentais da orientação a objetos em poucas palavras é uma tarefa difícil. Mas, ao mesmo tempo, vital. Não é de imaginar que alguém possa usar uma linguagem orientada a objetos (OO) sem os conhecer. Não menos importante que os conhecer é saber identificá-los e usá-los.

O primeiro , e talvez o único, principio de OO é o da Separação de Responsabilidades. O termo em inglês Separation of Concerns (SoC) define melhor o significado. Concerns não é só a responsabilidade, mas também a preocupação: “Principio de Separação de Preocupações” dá uma idéia melhor do que se quer dizer. Em resumo, um objeto deve fazer apenas uma tarefa e fazê-la bem. Não se deve preocupar com o que os outros objetos fazem. Num sistema macroscópico em que um objeto coordena objetos menores, ele confia que esses objetos executam bem a sua tarefa e não se preocupa com o como eles a executam.A única coisa que tem que existir entre todos os objetos é o consenso de com o quê , cada um, se deve preocupar.

A preocupação de cada objeto é apenas zelar pela melhor concretização da sua responsabilidade no sistema e zelar para que nada corrompa o controlo que ele tem sobre como executar sua tarefa.
Mas como conseguir a separação de responsabilidades ? A única resposta a esta pergunta é: Encapsulamento. É através das diferentes formas de encapsulamento que o objeto concretiza seu objetivo.

  1. Talvez a menos óbvia forma de encapsulamento é o próprio objeto em si. O fato de podermos juntar numa entidade só estado e comportamento é uma forma de encapsulamento.
  2. Uma forma mais conhecida de encapsulamento é o nivel de oclusão. Ou seja, o nivel em que o objeto deixa visivel ,ou não, aos outros objetos aquilo que ele é, ou faz.
  3. A herança é também um forma de encapsulamento. O fato de um objeto se esconder sobre uma ou mais capas de identidade esconde dos outros objetos seu verdadeiro funcionamento e intenções.

Em Java estas três formas de encapsulamento e algumas regras simples permitem que o Principio da Separação de Responsabilidades seja sempre possível de satisfazer.A própria definição da linguagem define os três artefatos necessários.

  1. A Classe detém todos os conhecimento sobre o objeto: como o criar e destruir, o que ele faz e o que é. A Classe é a tradução da primeira forma de encapsulamento.
  2. Os modificadores de acesso (default, protected , private e public) instituem diferentes níveis de oclusão implementando assim, a segunda forma de encasupalmento.
  3. A Interface dá corpo à terceira forma de encapsulamento, permitindo que um só objeto tenha várias caras e execute o mesmo trabalho sob condições diferentes.

Embora os artefatos embutidos na linguagem sejam os blocos fundamentais da construção de objetos e implantação do Principio de Separação de Responsabilidades existem diferentes combinações possíveis. O uso exaustivo dessas combinações levar-nos-á a encontrar um conjunto de padrões recorrentes que poderemos então usar diretamente na construção de nossos objetos: os Padrões de Projeto.

1 thought on “Separação de Responsabilidades e Encapasulamento”

Deixe uma Resposta

Please log in using one of these methods to post your comment:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s