Maison  >  Article  >  développement back-end  >  Trois fonctionnalités majeures de PHP orienté objet

Trois fonctionnalités majeures de PHP orienté objet

angryTom
angryTomoriginal
2019-08-22 11:06:244240parcourir

Trois fonctionnalités majeures de PHP orienté objet

L'orientation objet est apparue lorsqu'il y avait de nombreux problèmes avec les méthodes de conception structurée. La stratégie de base de la méthode de conception structurée pour résoudre des problèmes consiste à examiner le domaine du problème d’un point de vue fonctionnel. Ci-dessous, nous vous présenterons les trois principales fonctionnalités orientées objet de PHP.

Tutoriel recommandé : Tutoriel vidéo PHP

Les trois fonctionnalités principales sont : l'encapsulation et héritage, polymorphisme

encapsulation

La soi-disant encapsulation consiste à encapsuler des choses objectives dans des classes abstraites et des classes Vous pouvez uniquement autoriser des classes ou des objets de confiance à exploiter vos données et méthodes, et masquer les informations des objets non fiables.

L'encapsulation est l'une des caractéristiques de l'orientation objet et la principale caractéristique des concepts d'objet et de classe. En termes simples, une classe est une entité logique qui encapsule des données et du code qui opère sur ces données. Au sein d'un objet, certains codes ou certaines données peuvent être privés et inaccessibles au monde extérieur. De cette manière, les objets offrent différents niveaux de protection pour les données internes afin d'empêcher des parties non liées du programme de modifier accidentellement ou d'utiliser incorrectement les parties privées de l'objet.

Héritage

Ce qu'on appelle l'héritage fait référence à une méthode qui permet à un objet d'un certain type d'obtenir les propriétés d'un objet de un autre type. Il prend en charge le concept de classification pressant.

L'héritage fait référence à la possibilité d'utiliser toutes les fonctionnalités d'une classe existante et d'étendre ces fonctionnalités sans réécrire la classe d'origine. La nouvelle classe créée par héritage est appelée « sous-classe » ou « classe dérivée », et la classe héritée est appelée « classe de base », « classe parent » ou « super classe ». Le processus d'héritage est le processus du général au spécial. Pour obtenir l'héritage, vous pouvez y parvenir via « Héritage » et « Composition ». Il existe deux types de manières d'implémenter le concept d'héritage : l'héritage d'implémentation et l'héritage d'interface. L'héritage d'implémentation fait référence à la possibilité d'utiliser directement les propriétés et les méthodes d'une classe de base sans codage supplémentaire ; l'héritage d'interface fait référence à la possibilité d'utiliser uniquement les noms des propriétés et des méthodes, mais les sous-classes doivent fournir des implémentations

Polymorphisme

Le soi-disant polymorphisme signifie que la même méthode d'une instance de classe a différentes manifestations dans différentes situations.

Le mécanisme de polymorphisme permet à des objets ayant des structures internes différentes de partager la même interface externe. Cela signifie que même si les opérations spécifiques sur différents objets sont différentes, elles (ces opérations) peuvent être appelées de la même manière via une classe commune.

Cinq principes de base

Principe de responsabilité unique SRP (Principe de responsabilité unique)

Cela signifie que la fonction d'une classe doit être unique et ne peut pas être globale. Tout comme une personne, vous ne devriez pas vous voir confier trop de travail, sinon même si vous serez occupé toute la journée, votre efficacité ne sera pas élevée.

Principe d'ouverture-fermeture OCP (Principe d'ouverture-fermeture)

Un module doit être ouvert en termes d'extensibilité et doit être ouvert en termes de la variabilité est fermée. Par exemple : un module réseau n'avait à l'origine que des fonctions côté serveur, mais il doit désormais ajouter des fonctions côté client.

Ensuite, le code d'implémentation de la fonction client doit pouvoir être ajouté sans modifier le code de la fonction serveur. Cela nécessite que le serveur et le client soient séparés au début de la conception, et que les parties communes soient séparées. abstrait.

Principe de substitution (le principe de substitution de Liskov LSP)

Les sous-classes doivent pouvoir remplacer la classe parent et apparaître partout où la classe parent peut apparaître . Par exemple, si l'entreprise organise une fête annuelle et que tous les employés peuvent participer à la loterie, alors qu'ils soient anciens ou nouveaux employés, qu'ils soient employés du siège ou employés expatriés, ils devraient pouvoir participer à la loterie, sinon l'entreprise ne sera pas harmonieuse.

Principe de substitution (le principe de substitution de Liskov LSP)

Supposons que B soit un module inférieur à A, mais que B doit utiliser les fonctions de A , à ce stade, B ne devrait pas utiliser directement la classe concrète dans A : au lieu de cela, B devrait définir une interface abstraite, et A devrait implémenter cette interface abstraite. B n'utilise que cette interface abstraite : cela atteint l'objectif d'inversion de dépendance. B Cela supprime également la dépendance à l'égard de A. À son tour, A dépend de l'interface abstraite définie par B. Il est difficile d'éviter de s'appuyer sur des modules de niveau inférieur via des modules de niveau supérieur. Si B dépend également directement de l'implémentation de A, cela peut alors provoquer des dépendances circulaires. Un problème courant est que lors de la compilation du module A, vous devez inclure directement le fichier cpp du module B, et lors de la compilation de B, vous devez également inclure directement le fichier cpp de A.

Le principe de ségrégation des interfaces FAI

Les modules doivent être isolés via des interfaces abstraites plutôt que via des classes concrètes. Couplez-le

.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:portée des variables phpArticle suivant:portée des variables php