Verdana size=2>msdn03_capa.jpg

Clique aqui para ler todos os artigos desta edição

 

Visão Geral da Programação Orientada a Objetos para "Programadores  Estruturados"

por Fábio Galuppo

À exceção de algumas características empregadas por linguagens de programação (por exemplo, o Visual Basic 6), tais como “orientação a eventos” e “programação baseada em objetos”, notamos que a maior parte do desenvolvimento nesses ambientes segue o paradigma da programação estruturada. Se compararmos os paradigmas de programação existentes no mercado, percebemos o avanço e a necessidade da orientação a objetos em relação à programação estruturada. Essa necessidade é constatada principalmente nos projetos onde se adotam notações UML para documentação. De fato, projetos que antes eram implementados com linguagens de programação “estruturadas”, como Visual Basic, C, Clipper e COBOL, cada vez mais dão lugar a linguagens orientadas a objetos: Visual Basic.NET, C++, Java, Delphi e C#.

Mas, afinal, qual é a vantagem da orientação a objetos? Na verdade, são duas: a reutilização do código e a sua organização através de objetos que simulam alguma coisa real, como, por exemplo, um objeto que represente um arquivo (com operações como criar, apagar, mover e atributos como nome_do_arquivo e data_de_criação).

 

Revisão de alguns conceitos

Ao analisarmos o Visual Basic 6, por exemplo, observamos que seus usuários o consideram uma linguagem baseada em objetos, pois ela oferece suporte a eventos, classes e propriedades, dentre outros itens. O Visual Basic 6 apresenta essas características principalmente por ser uma ferramenta “COM-Enabled”, ou seja, ela oferece suporte a COM (o modelo de componentes criado pela Microsoft). O COM é baseado em interfaces binárias, mas seu suporte é limitado no que se refere às características da orientação a objetos. Essas interfaces só oferecem suporte a funções (métodos) e simulam eventos (connection points) e propriedades (pares get e set).

 

Conforme mencionado anteriormente, embora a classe COM possa conter métodos, propriedades e eventos, ela oferece suporte a poucas características da orientação a objetos (tais como encapsulamento e polimorfismo). Por exemplo, ela não suporta características como herança de implementação nem características pertinentes às classes, como sobrecarga de método (o Visual Basic retorna Ambigous Name). Veja um exemplo na Listagem 1.

 

Listagem 1. Exemplo de métodos e propriedades

Private X_ As Integer, Y_ As Integer

Public Event Moving()

 

'Public Sub Move(ByVal value As Integer) 'Sobrecarga não é permitida!

 

Public Sub Move(ByVal left As Integer, ByVal top As Integer)

    X_ = X_ + left

    Y_ = T_ + top   

    RaiseEvent Moving

End Sub

 

Public Property Let X(ByVal value As Integer)

    X_ = value

End Property

 

Public Property Get X() As Integer

   X_ = value

End Property

 

Public Property Let Y(ByVal value As Integer)

    Y_ = value

End Property

 

Public Property Get Y() As Integer

    Y = Y_

End Property

 

A “orientação a eventos” é outra característica predominante no Visual Basic 6, pois a linguagem suporta eventos originados de classes COM, bem como do próprio Windows (como o clique de um botão).

  No Visual Basic 6, a “programação baseada em objetos” pode ser percebida de duas maneiras. Uma delas consiste em considerar um controle do tipo botão de comando (CommandButton) como um objeto. Assim, o Visual Basic pode oferecer suporte a uma enorme variedade de controles (built-in e ActiveX). A segunda consiste na especificação de funções bem definidas, que possam ser reutilizadas e conectadas entre si por meio de handlers (semelhante ao tratamento dado pelas APIs do Windows). Por exemplo, CreateFile gera um HANDLE, que por sua vez nos permite gravar dados em um arquivo por intermédio da função WriteFile e, por fim, fechar o arquivo com CloseHandle. Esta última maneira pode ser considerada a transição entre a programação estruturada e a programação orientada a objetos. Verifique o trecho a seguir, que oferece uma seqüência de instruções para a manipulação de um arquivo.

 

Open "c:\temp\testexyz.txt" For Output As #1

Write #1, "Teste"

Close #1

 

Open "c:\temp\testexyz.txt" For Input As #1

Dim line as String

Input #1, line

Call MsgBox(line)

Close #1

 

A Listagem 2 ...

Quer ler esse conteúdo completo? Tenha acesso completo