Orientação a Objetos, por Dalai Lama – parte 1.5

Galera ele voltou: Tenzin Gyatso, o décimo quarto Dalai Lama em pessoa voltou cheio de sabedoria pra vocês arrasarem na Programação Orientada a Objetos (OOP para os iluminados). Se você perdeu a última, ainda dá tempo de ler aqui nesse link maroto.

Vai na manha devagarzinho estuda com calma

Vai na manha devagarzinho estuda com calma

Esperamos do fundo dos nossos corações ainda abalados pelo cancelamento de Firefly que com essa série de artigos uma quantidade de pessoas suficiente para criar uma consciência coletiva emerja do caos e salve a pele de vários programadores dedicados que insistem em fazer o certo. Sim, esperamos que vários gerentes e coordenadores de projeto adotem e incentivem a OOP como instrumento de produtividade e não encarem-na como um obstáculo.

Lembram do grande motivo pra usar OOP? Tornar o código mais fácil de manter, o que é um resuminho de “fácil de ler, fácil de modificar, fácil de reutilizar”.

Para os programadores fácil de manter significa liberdade, confiança e peitinhos.

(o) (o)

(o) (o)

Para gerentes e para a galerinha administrativa, fácil de manter significa que aquela alteraçãozinha (perceberam o tom?) no sistema de faturamento que você pensa que é simples mas se arraiga nas profundas entranhas obscuras de toda a arquitetura dessa vez não causará a morte e/ou demissão (sem ordem específica) dos programadores envolvidos. Menos mortes, menos custo, Yeah!

Voltando aos conceitos

Relembrando rapidinho:

  • A classe é a definição de como um objeto se comportará.
  • Uma classe pode definir várias operações (chamadas de métodos) para o objeto interagir com outros elementos.
  • O objeto que pertence a uma classe é uma instância dela.
  • É legal saber os nomes certos das coisas pra não fazer papel de bobo quando estiver desesperado por ajuda.

Usando exemplos agora:

  • Uma classe Email para definir um email que será enviado.
  • Operações como enviar, salvarRascunho e anexarArquivo.
  • Cada instância dessa classe é um email diferente.

Agora imaginem cada uma dessas instâncias de objetos. Imagine três ou quatro mensagens de email diferentes, o que muda de uma pra outra? Algumas coisinhas como o remetente, o destinatário, a lista de copiados e os anexos, por exemplo!

Esses são os atributos (ou propriedades) dos objetos. Uma classe também define quais atributos um objeto terá, mas não define quais valores esses atributos terão, já que cada objeto pode ter uma combinação de atributos diferente. A combinação atual de atributos em um objeto é o seu estado.

Como esses conceitos e nomes são todos meio demorados de digerir, vamos lhe entupir de exemplos que você usaria no dia-a-dia pra você começar a treinar o seu cérebro a dar o nome certo as coisas.

Classe: Documento

Propósito: Representar um documento. Poderia ser utilizado em um editor de textos.

Atributos: titulo, texto, autor, dataDeAlteracao

Métodos: salvar, salvarComo, corrigirOrtografia

Mais um:

Classe: ConexaoComBancoDeDados

Propósito: Interagir com um banco de dados. Para ser usado em qualquer software que conecte com um banco de dados.

Atributos: servidor, usuario, senha, banco

Métodos: consultar, conectar, desconectar

Denovo:

Classe: DownloadGerenciado

Propósito: Representa um download a ser efetuado por um gerenciador de downloads (um download legalizado, o autor desse artigo não se responsabiliza por downloads ilegais OUVIRAM GRAVADORAS). Um navegador, um gerenciador de downloads ou um software de atualização automática poderiam usar essa classe.

Atributos: url, progresso, velocidade

Métodos: iniciar, obterTempoRestante, pausar, reiniciar

Mais uma vez:

Classe: BarraDeFerramentas

Propósito: Exibir e controlar uma barra de ferramentas em um software famoso que deve ser obtido de maneira legalizada. Qualquer software que usa barras de ferramentas poderia usar essa classe.

Atributos: botoes, posicao

Métodos: mover, fechar, adicionarBotao, removerBotao

Notaram que em cada exemplo eu coloquei um propósito pra classe? Pois é, vou cair matando apavorando geral descendo pesado nesse conceito no próximo artigo da série.

Alexandre Gaigalas

Desenvolvedor PHP há tanto tempo que nem lembra direito há quanto tempo é desenvolvedor, o que talvez seja Alzheimer precoce.

Website - Twitter - Facebook - More Posts