Princípio do Aberto Fechado

by Cinta Vidal Agullo / from beautifuldecay.com

Todo software sofre evolução. É difícil pensar em um software que seja feito e nunca receba algum tipo de manutenção. Então, estamos sempre pensando em adicionar uma nova funcionalidade em nosso software e, sendo assim, pensamos logo em modificarmos o código para acrescentar o que é necessário, mas evitar modificações é uma boa prática. Quanto maior o número de modificações uma classe sofre, maior a probabilidade de erros, menor a sua confiabilidade, maior o risco ao se acoplada por outra classe e pior se torna a sua manutenabilidade. Mas como o software evolui evitando modificar o código que está nele? A solução está em estender o código e não modificar o que já está pronto.

Em um projeto orientado a objetos, quando precisamos adicionar um comportamento ou funcionalidade nova, espera-se que as classes responsáveis possam ser estendidas e um novo trecho de código possa a ser escrito. O segredo está em tornar nossas classes possíveis de serem estendidas para que assim evitemos modificá-las. Exemplificando, vamos no maior número de casos possíveis estar criando novas classes para novas funcionalidades ao invés modificar classes já existentes.

O Princípio do Aberto Fechado, que faz parte do SOLID, estipula que toda a classe deve estar aberta para ser estendida e fechada para ser modificada. Esse princípio zela de forma indireta pela estabilidade do código das classes e pelos controle dos riscos dos acoplamentos, pois modificações em códigos podem gerar novos erros em uma classe que talvez já estivesse estável e consequentemente as classes do acoplamento refletirão esse erro como em um “efeito dominó”.  Evitando modificações nos códigos e priorizando extensões, o código é mantido intacto, confiável e os acoplamentos passam a ter o risco reduzido. Criar código extensível é uma responsabilidade do desenvolvedor maduro, utilizar design duradouro para um software de boa qualidade e manutenibilidade. Mas como fazer com que suas classes estejam abertas para a extensão e fechadas para as modificações? Através das abstrações. O famoso “programar voltado pra interfaces”, tópico que pretendo falar melhor mais à frente.

Quando aprendemos sobre orientação a objetos com certeza ouvimos sobre abstração, é ela que permite que este princípio funcione. Se um software possui abstrações bem definidas logo ele estará aberto para extensão.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s