Na programação orientada a objeto, o princípio do aberto/fechado estabelece que "entidades de software (classes, módulos, funções, etc.) devem ser abertas para extensão, mas fechadas para modificação"; isto é, a entidade pode permitir que o seu comportamento seja estendido sem modificar seu código-fonte.

O nome do princípio aberto/fechado tem sido usado de duas maneiras. Ambas as maneiras usam generalizações (por exemplo, herança , ou delegação de funções) para resolver o aparente dilema, mas os objetivos, as técnicas e os resultados são diferentes.

Princípio aberto/fechado de Meyer Bertrand Meyer geralmente é creditado por ter originado a expressão do princípio aberto/fechado,Robert C. Martin "The Open-Closed Principle", C++ Report, January 1996, pp. 1 que apareceu em sua obra Software Orientação a objetos de Construção, de 1988.No momento que Meyer estava escrevendo aquela obra, adicionar campos ou funções em uma biblioteca, inevitavelmente geraria alterações necessárias para todos os programas que dependiam daquela biblioteca. A solução proposta por Meyer para este dilema dependia da noção de herança presente na orientação a objetos (especificamente a herança de implementação):

Princípio de aberto/fechado polimórfico Durante a década de 1990, o princípio de aberto/fechado tornou-se redefinido popularmente para se referir ao uso de interfaces abstratas, onde as implementações podem ser alteradas e várias implementações poderiam ser criadas e polimorficamente substituídas por outras.

Em contraste com o uso de Meyer, esta definição defende a herança de classes base abstratas. Especificações de Interface podem ser reutilizadas através de herança, não sendo necessária uma implementação. A interface existente é fechada para modificações e novas implementações devem, no mínimo, implementar essa interface.

Robert C. Martin's no artigo, de 1996, "Open-Closed Principle"Robert C. Martin "The Open-Closed Principle", C++ Report, January 1996 foi um dos seminais escritos para tomar essa atitude. Em 2001 Craig Larman relacionou o princípio aberto/fechado com o padrão de Alistair Cockburn chamado Variações Protegidas, e com a discussão de David Parnas sobre esconder informações.Craig Larman, "Protegidos da Variação: A Importância de Ser Fechado", IEEE Software de Maio/junho de 2001, pp. 89-91

Ver também

SOLID – o "O" em "SOLID" refere-se ao "Open/Closed Principle" (Princípio Aberto/Fechado).

Referências

Ligações externas

Os Princípios de INUNDAÇÃO Aberto/Fechado Princípio: Preocupações sobre a Mudança no Design de Software Aberto Fechado Princípio O Aberto-Fechado Princípio-e o Que se Esconde por Trás

Categoria:Desenho de software Categoria:Teoria dos tipos Categoria:Programação orientada a objetos