Ir para o conteúdo
ou

Software livre Brasil

0 integrantes

Nenhum(a)

Pinguim Engenheiro

 Voltar a Pinguim Enge...
Tela cheia Sugerir um artigo

Funções Virtuais e Controle de Acesso - Parte 1

27 de Novembro de 2010, 0:00 , por Software Livre Brasil - 0sem comentários ainda | Ninguém está seguindo este artigo ainda.
Visualizado 153 vezes
Introdução

Do ponto de vista de orientação a objetos, as funções membro virtuais, ou simplimente “funções virtuais”, é um dos aspectos mais importantes de C/C++, o que torna desejável que seus programadores conhecessem solidamente suas implicações em diferentes contextos. E um fato bastante importante é como a correlação entre funções virtuais e controle de acesso pode afetar um programa. Uma questão, que que se bem determinada pode livrar a dor de cabeça de muitos programadores. 

O que deve ser feito é exatamente o que se faria com uma função membro comum, sempre tornando-as privadas a não ser que haja realmente a necessidade de expor-la a público, garantindo assim um encapsulamento, que certo tempo de experiência com OOP pode comprovar ser, realmente satisfatório. A única excessão a esse consenso são as Structs, pois as mesmas não tem qualquer intenção de garantir nenhum nível de encapsulamento, já que sua funcionalidade se restringe a criar simples agrupamentos de dados (ao menos, é o que os grandes gurus de c++ aconselham).

Certamente, a linkagem dinâmica das funções membro virtuais agregou muito valor em relação ao C original, mas como C/C++ é uma linguagem com muitas variações para a implementação de um mesmo conceito, o que acabamos vendo frequentemente é o abuso das funções virtuais pelos iniciantes mais desavisados. Este artigo visa então desmistificar o uso das funções virtuais em uma hierarquia de herança.

Estudo de Caso: Um erro de design

Tradicionalmente, os programadores tendem a colocar as funções membro virtuais no escopo público, com a intenção de definir de forma simples tanto a interface quanto a implementação. Como exemplo, poderíamos ter o código abaixo:



Ao analisar o código, podemos perceber que as funções virtuais estão definindo uma interface, pois estão no escopo público, e que também definem uma implementação, já que também implementam o comportamento das funções, pois substituem as implementações herdadas de uma classe base (se existir alguma).

O problema dessa abordagem é o caráter duplo que as funções virtuais incorporam. Claramente, o programador não soube separar dois conceitos distintos, como interface e implementação, e isto é um sinal de que este não é o caminho correto e que devemos procurar outra alternativa.

Continua... 

Bem, está é a primeira parte de dois artigos. Vou dar um tempo para que vocês proponham mudanças nesse estudo de caso, semana que vem eu posto o resto do artigo. Enquanto isso ^^, pensem!!!



Fonte: http://feedproxy.google.com/~r/OPinguimEngenheiro/~3/NXQF1VWu63k/funcoes-virtuais-e-controle-de-acesso.html

0sem comentários ainda

Enviar um comentário

Os campos são obrigatórios.

Se você é um usuário registrado, pode se identificar e ser reconhecido automaticamente.