BT

OOP é melhor para Estruturar o seu Código?

por Sadek Drobi , traduzido por Douglas Masson em 17 Dez 2008 |

Linguagens de Programação que oferecem mais poder e flexibilidade ultimamente foram ganhando força Johnatan Tang destaca, no entanto, a troca flexibilidade versus produtividade, entre outras coisas, devido ao fato de que a tradicional orientação a objetos torna mais fácil e direto organizar os programas.

Ele argumenta que as linguagens de despacho único, “dado um parâmetro ou outro valor, você sabe exatamente o que você pode fazer com ele”. Apesar de que código de linguagens estaticamente tipadas é mais revelador sobre os valores envolvidos, estruturalmente as linguagens tipadas são mais comuns, mas ainda dão uma idéia imediata de que operações estão disponíveis em determinado valor. E para ambos, linguagens estaticamente e estruturalmente tipadas, é muito claro o que deve ser feito se você quer executar uma operação que não é suportada por um determinado objeto:

Você escreve um método que realizada essa operação. Isso é problemático se não é você que controla essa classe, razão pelo qual o Ruby e o C# migraram para classes abertas. […]

E é geralmente obvio onde este método deveria ir: em uma classe que você precisa manipular.

Nas linguagens multi-dispatch, é muito menos evidente quando um método deve ser escrito e “qualparâmetro de um novo método poderia receber um [dado] valor”. Isto proporciona mais flexibilidade na organização do código, mas isso implica que mais decisões deverão ser tomadas sobre ele e mais esforço deve ser aplicado para manter estas decisões:

Então, cada vez que alguém usar esse método, eles devem relembrar quando foi definido e adicionar a declaração de importação apropriada. Se eles esquecerem, poderiam obter comportamento que não esperam, porque o método apropriado para a função genérica nem chegou a ser carregado.

Estabelecer convenções pode ser considera uma solução para esta questão. Contudo, Tang acredita que “convenções que não são impostas pela linguagem tendem de não serem seguidas”. Além disso, após tentar definir alguns padrões para disposição dos módulos, ele também afirma que“ isto é inerentemente ao domínio específico do problema: não há nenhum principio de organização correta que se aplique a todos os casos.”

Assim, segundo Johnatan Tang não há solução óbvia para esta troca entre flexibilidade versus produtividade ao organizar programas. E quanto à sua linguagem favorita? Que soluções você poderia encontrar? Dada sua experiência, há algum inconveniente entre os dois?

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2014 C4Media Inc.
Política de privacidade
BT