Maison  >  Article  >  développement back-end  >  Principes de conception de l'encapsulation en PHP

Principes de conception de l'encapsulation en PHP

WBOY
WBOYoriginal
2023-10-12 09:37:551160parcourir

Principes de conception de lencapsulation en PHP

Le principe de conception de l'encapsulation en PHP nécessite des exemples de code spécifiques

L'encapsulation est l'un des principes importants de la programmation orientée objet. Elle est principalement utilisée pour masquer les détails d'implémentation internes des objets et exposer uniquement les interfaces nécessaires aux applications externes. accéder. . La conception encapsulée peut améliorer la réutilisabilité, la maintenabilité et la sécurité du code. En PHP, nous pouvons utiliser des classes et des modificateurs d'accès pour réaliser une conception encapsulée.

  1. Encapsulation des données membres
    En PHP, nous pouvons utiliser trois modificateurs d'accès : privé, protégé et public pour contrôler les autorisations d'accès aux attributs. Les propriétés privées ne sont accessibles qu'au sein de la classe, les propriétés protégées sont accessibles au sein de la classe et des sous-classes, et les propriétés publiques sont accessibles de n'importe où. En définissant les données membres comme privées ou protégées, nous pouvons éviter l'accès externe direct aux propriétés de l'objet, masquant ainsi les détails d'implémentation internes de l'objet.

Exemple de code :

class User {
    private $name;
    protected $age;
    public $email;

    public function __construct($name, $age, $email) {
        $this->name = $name;
        $this->age = $age;
        $this->email = $email;
    }

    public function getName() {
        return $this->name;
    }

    public function getAge() {
        return $this->age;
    }

    public function getEmail() {
        return $this->email;
    }

    public function setName($name) {
        $this->name = $name;
    }

    public function setAge($age) {
        $this->age = $age;
    }

    public function setEmail($email) {
        $this->email = $email;
    }
}

$user = new User("John", 25, "john@example.com");

echo $user->getName(); // 输出:John
echo $user->getAge(); // 输出:25
echo $user->getEmail(); // 输出:john@example.com

$user->setName("Tom");
$user->setAge(30);
$user->setEmail("tom@example.com");

echo $user->getName(); // 输出:Tom
echo $user->getAge(); // 输出:30
echo $user->getEmail(); // 输出:tom@example.com

Dans l'exemple ci-dessus, nous définissons l'attribut $name sur privé, l'attribut $age sur protégé et l'attribut $email sur public. En fournissant les méthodes getter et setter correspondantes pour chaque propriété, le code externe peut accéder et modifier les propriétés de l'objet via ces méthodes sans accéder directement aux propriétés elles-mêmes.

  1. Méthodes d'encapsulation
    En plus d'encapsuler les données membres, nous pouvons également encapsuler le comportement des objets, c'est-à-dire des méthodes d'encapsulation. En définissant les méthodes comme privées ou protégées, nous pouvons contrôler l'accès du code externe au comportement d'un objet, masquant ainsi les détails d'implémentation internes de l'objet.

Exemple de code :

class Calculator {
    private function add($a, $b) {
        return $a + $b;
    }

    protected function subtract($a, $b) {
        return $a - $b;
    }

    public function multiply($a, $b) {
        return $a * $b;
    }

    public function divide($a, $b) {
        if ($b != 0) {
            return $a / $b;
        } else {
            return "除数不能为0!";
        }
    }
}

$calculator = new Calculator();

echo $calculator->multiply(2, 3); // 输出:6
echo $calculator->divide(10, 5); // 输出:2
echo $calculator->add(2, 3); // 报错:无法访问私有方法

Dans l'exemple ci-dessus, nous définissons la méthode d'ajout comme privée, la méthode de soustraction comme protégée et les méthodes de multiplication et de division comme publiques. Le code externe peut appeler le comportement de l'objet via les méthodes de multiplication et de division, mais il ne peut pas appeler directement les méthodes privées.

Résumé : 
L'encapsulation est l'un des principes importants de la programmation orientée objet. En PHP, la conception de l'encapsulation peut être réalisée via des classes et des modificateurs d'accès. En encapsulant les données membres et les méthodes d'encapsulation, nous pouvons masquer les détails d'implémentation internes de l'objet et améliorer la réutilisabilité, la maintenabilité et la sécurité du code.

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