O que é o princípio aberto-fechado (OCP)?

O  Princípio Aberto/Fechado  é o princípio de design mais básico no mundo do desenvolvimento de software. Ele nos orienta como construir um sistema estável e flexível.

Definição:

Uma entidade de software como classe, módulo e função deve ser aberta para extensão e fechada para modificação.

O significado do princípio de abertura e fechamento é que uma entidade de software deve ser expandida para conseguir mudanças, ao invés de modificar o código existente para conseguir mudanças.

O princípio de abertura e fechamento é um princípio que restringe o desenvolvimento e design atuais para as coisas futuras da entidade de software.

Nota: O princípio de abertura e fechamento é aberto para extensão e fechado para modificação. Isso não significa que nenhuma modificação será feita. Mudanças em módulos de baixo nível devem ser acopladas a módulos de alto nível, caso contrário será um fragmento de código isolado e sem sentido.

A importância do princípio de abertura e fechamento:

  • O impacto dos princípios de abertura e fechamento nos testes

O princípio de abertura e fechamento é manter o código de teste original ainda funcionando normalmente, só precisamos testar o código estendido.

  • O princípio de abertura e fechamento pode melhorar a reutilização

No  design orientado a objetos , toda a lógica é combinada a partir da lógica atômica, em vez de implementar uma lógica de negócios em uma classe de forma independente. Só assim o código pode ser reutilizado. Quanto menor a granularidade, maior a possibilidade de ser reutilizado.

  • Princípio aberto e fechado pode melhorar a manutenção
  • Requisitos de desenvolvimento orientado a objetos

Como usar o princípio de abertura e fechamento:

Primeiro , restrinja a extensão através da interface ou classe abstrata, limite a extensão do limite e não permita métodos públicos que não existam na interface ou classe abstrata;

Segundo , tente usar interfaces ou classes abstratas para tipos de parâmetros e objetos de referência em vez de classes de implementação;

Terceiro , a camada de abstração deve ser mantida o mais estável possível, uma vez confirmada, nenhuma modificação é permitida.

O encapsulamento de mudanças tem dois significados:

Primeiro, encapsule as mesmas mudanças em uma interface ou classe abstrata;

Segundo, encapsular diferentes mudanças em diferentes interfaces ou classes abstratas. Duas alterações diferentes não devem aparecer na mesma interface ou classe abstrata.


Exemplos

Um exemplo, abrir e fechar portas manualmente.

Caso haja uma nova demanda, é necessário aumentar a função de abertura e fechamento manual da gaveta. Para o código, você precisa adicionar uma classe Drawer e modificar a classe Hand ao mesmo tempo.

Seguindo o exemplo do princípio de abertura e fechamento OCP, abrir e fechar a porta manualmente depende de uma interface, e a classe de implementação específica implementa essa interface.

Quando é necessário aumentar o número de mãos para abrir e fechar a geladeira, a classe refrigerador implementa essa interface sem modificar a classe e a interface Hand originais.

Mais recursos orientados a objetos

Leave a Reply

O seu endereço de email não será publicado.