SOLID - Princípio do Aberto/Fechado

Duas definições para ajudar a entender o princípio do aberto/fechado.

O princípio Aberto/Fechado, cunhado por Bertrand Meyer em 1988, estabelece o seguinte:

Um artefato de software deve ser aberto para extensão, mas fechado para modificação.
Dependendo de abstrações estáveis, o sistema pode ser modificado fornecendo diferentes implementações concretas.

Em essência, o princípio Aberto/Fechado promove o uso do polimorfismo para permitir que um sistema seja facilmente estendido sem a necessidade de modificar seu código existente. Isso significa que as classes e componentes do sistema devem ser projetados de forma a serem abertos para a adição de novos comportamentos ou funcionalidades, por meio de extensões, mas devem ser fechados para alterações diretas em sua implementação.

Ao depender de abstrações estáveis, como interfaces ou classes abstratas, é possível introduzir diferentes implementações para cumprir requisitos específicos sem alterar o código existente. Isso é possível porque o sistema se baseia nas abstrações, que fornecem os contratos e comportamentos esperados, permitindo a substituição das implementações concretas.

O uso do polimorfismo e do princípio Aberto/Fechado traz diversos benefícios, como a reutilização de código, a manutenção simplificada, a flexibilidade para adaptação a novos requisitos e a preservação da integridade do código existente. Essa abordagem favorece um design orientado a objetos coeso, modular e de fácil evolução.

Grande abraço! 

 Para saber mais: