domingo, 12 de setembro de 2010

Vocabulário Básico OO

Saudações novamente terráqueos!

Como prometido no post anterior, vamos falar sobre o básico/necessário para montarmos um projeto orientado a objetos.
Antes de entrarmos nos diagramas (até a versão 2.x eram 14) UML vamos aprender as técnicas básicas de OO (Orientação a Objeto).


As cinco principais características do paradigma OO

Objeto/Classe
Um Objeto é uma entidade, ou algo que têm um comportamento (métodos) e atributos (variáveis) definidos por uma Classe. Ou seja, uma Classe define Objetos.

Encapsulamento/Information Hiding
É a capacidade de um Objeto de ocultar seus componentes (comportamentos e/ou atributos) para outros Objetos. Em outras palavras, um Objeto define o que pode ser "visto" pelos demais Objetos que interagem com ele.

Herança
Um dos conceitos mais poderosos de OO é certamente o da Herança. Este mecanismo permite a você criar Classes Base (também Super Classe, Classe Pai e/ou Root) a fim de definir um Objeto genérico para que Sub Classes (também Classe Filha, Classe Derivada e/ou Leaf) possam implementar suas definições ou até mesmo extende-las (overriding).
Lembro que certa vez em um projeto para um site de anuncios tinhamos modelado duas entidades, Pessoa Jurídica e Pessoa Física. Ambos tinham determinados atributos e comportamentos que eram iguais como endereço, indicador de ativação (ativo/inativo) e telefone. Tanto Pessoa Jurídica e Física são Anunciantes! Desta forma Definimos uma Classe Base, Anunciante, para que as demais Classes (Física e Jurídica) pudéssem herdar os atributos acima e adicionar os que eram importântes para suas definições. Okie Dokie!

Polimorfismo
Outro poderoso mecanismo que separa os faixas pretas dos marrons em OO. Com Polimorfismo uma mesma ação (método) pode se comportar de formas diferentes dependendo de quem o implementa.
Pense no seguinte exemplo, temos três profissionais: Um Cabeleireiro, um Cirurgião e um Diretor de cinema.
Se você falar para o Cabeleireiro a ação "corta!", ele entenderia que você quer que ele corte seu cabelo, afinal ele é um Cabeleireiro!
Agora tente dizer a mesma coisa para o Cirurgião, "corta!". O Cirurgião entenderia que ele deve fazer uma incisão! Já para o Diretor se você dizer "corta!", ele entenderá que deverá parar as filmagens do filme, entendeu? A mesma ação executada de formas diferentes!

Interface
Como você definiria o comportamento de um mamífero? Hmmm eles se locomovem, comem, bebem... certo? Porém, nós nos locomovemos sob dois membros enquanto que uma vaca sob quatro, nós (ou pelo menos alguns de nós...) utilizamos nossas mãos para levar o alimento a nossa boca, já as vacas se alimentam diretamente no pasto, sem a necessidade de utilizar suas patas e etc... O ponto é, ambos se: Locomovem, Comem e Bebem. É isto que uma Interface representa, ela diz o comportamento de algo (mamífero no nosso exemplo) mas cabe a cada Objeto (Homem e Vaca) definir como eles implementam seus comportamentos.

É isto ae galera, no próximo post vamos entrar em detalhes no universo UML.
Até mais!

Um comentário:

  1. Cara muito bom exemplos usados.
    Exemplo do projetos de anuncio, foi bom, lembra na sala quebrando a cabeça eu você e o John no relacionamento entre as classes?
    Até o proximo post.
    Cara precisa divulgar seu blog, esta muito bom os exemplos.

    ResponderExcluir