Qu’est-ce que le principe ouvert-fermé (OCP) ?

  • Le  principe ouvert/fermé  est le principe de conception le plus fondamental dans le monde du développement logiciel. Il nous guide dans la construction d’un système stable et flexible.

    Définition:

    Une entité logicielle telle qu’une classe, un module et une fonction doit être ouverte pour extension et fermée pour modification.

    La signification du principe d’ouverture et de fermeture est qu’une entité logicielle doit être étendue pour réaliser le changement, plutôt qu’en modifiant le code existant pour réaliser le changement.

    Le principe d’ouverture et de fermeture est un principe qui limite le développement et la conception actuels pour les choses futures de l’entité logicielle.

    Remarque : Le principe d’ouverture et de fermeture est ouvert pour extension et fermé pour modification. Cela ne signifie pas qu’aucune modification ne sera apportée. Les modifications apportées aux modules de bas niveau doivent être couplées avec des modules de haut niveau, sinon ce sera un fragment de code isolé et sans signification.

    L’importance du principe d’ouverture et de fermeture :

    • L’impact des principes d’ouverture et de fermeture sur les tests

    Le principe d’ouverture et de fermeture est de garder le code de test d’origine toujours capable de fonctionner normalement, nous n’avons qu’à tester le code étendu.

    • Le principe d’ouverture et de fermeture peut améliorer la réutilisabilité

    Dans  la conception orientée objet , toute la logique est combinée à partir de la logique atomique, au lieu d’implémenter une logique métier dans une classe indépendamment. Ce n’est qu’ainsi que le code peut être réutilisé. Plus la granularité est petite, plus la possibilité d’être réutilisé est grande.

    • Le principe ouvert et fermé peut améliorer la maintenabilité
    • Exigences de développement orienté objet

    Comment utiliser le principe d’ouverture et de fermeture :

    Tout d’abord , restreignez l’extension via l’interface ou la classe abstraite, limitez l’extension de la frontière et n’autorisez pas les méthodes publiques qui n’existent pas dans l’interface ou la classe abstraite ;

    Deuxièmement , essayez d’utiliser des interfaces ou des classes abstraites pour les types de paramètres et les objets de référence au lieu des classes d’implémentation ;

    Troisièmement , la couche d’abstraction doit être maintenue aussi stable que possible, une fois qu’elle est confirmée, aucune modification n’est autorisée.

    L’encapsulation des modifications a deux significations :

    Tout d’abord, encapsulez les mêmes modifications dans une interface ou une classe abstraite ;

    Deuxièmement, encapsulez différentes modifications dans différentes interfaces ou classes abstraites. Deux modifications différentes ne doivent pas apparaître dans la même interface ou classe abstraite.


    Exemples

    Un exemple, ouvrir et fermer les portes à la main.

    S’il y a une nouvelle demande, il est nécessaire d’augmenter la fonction d’ouverture et de fermeture du tiroir à la main. Pour le code, vous devez ajouter une classe Drawer et modifier la classe Hand en même temps.

    A l’instar du principe d’ouverture et de fermeture OCP, l’ouverture et la fermeture manuelle de la porte dépendent d’une interface, et la classe d’implémentation spécifique implémente cette interface.

    Lorsqu’il est nécessaire d’augmenter le nombre de mains pour ouvrir et fermer le réfrigérateur, la classe de réfrigérateur implémente cette interface sans modifier la classe et l’interface Hand d’origine.

    Plus de ressources orientées objet

Leave a Reply

Votre adresse e-mail ne sera pas publiée.