illustrer
1. Combinez deux classes initialement indépendantes, puis utilisez les méthodes et les attributs des deux classes pour générer un nouveau résultat.
2. La structure est divisée en classes abstraites, classes abstraites raffinées, classes d'implémentation, classes d'implémentation concrètes et code client.
Exemple
/** * Classe abstraite de couleur * Classe Couleur */ classe abstraite Couleur { /** * @retour mixte */ fonction publique abstraite run(); } /** * Noir * Classe Noir */ la classe Noir étend la couleur { fonction publique exécuter() { // À FAIRE : Implémenter la méthode run(). renvoie « noir » ; } } /** *Blanc*Classe Blanc */ classe Blanc étend la Couleur { fonction publique exécuter() { // À FAIRE : Implémenter la méthode run(). renvoie « blanc » ; } } /** * Rouge * Classe Rouge */ la classe Rouge étend la couleur { fonction publique exécuter() { // À FAIRE : Implémenter la méthode run(). renvoie « rouge » ; } } /** * Classe abstraite de forme * Forme de classe */ Forme de classe abstraite { /** * Couleur * @var Couleur */ couleur $ protégée ; /** * Constructeur de forme. * @param Couleur $couleur */ fonction publique __construct(Couleur $couleur) { $this->couleur = $couleur; } /** * @retour mixte */ opération de fonction publique abstraite (); } /** * Tour * Tour de classe */ classe Round étend la forme { /** * @return mixte | vide */ opération de fonction publique() { // À FAIRE : Implémenter la méthode operation(). echo $this->colour->run() 'circle
'; } } /** * Rectangle * Classe Rectangle */ la classe Rectangle étend la forme { /** * @return mixte | vide */ opération de fonction publique() { // À FAIRE : Implémenter la méthode operation(). echo $this->colour->run() 'Rectangle
'; } } /** * Carré * Carré de classe */ la classe Carré étend la forme { /** * @return mixte | vide */ opération de fonction publique() { // À FAIRE : Implémenter la méthode operation(). echo $this->colour->run() . } } // Code client // Rond blanc $whiteRound = new Round(new White()); $whiteRound->opération(); // Carré Noir $blackSquare = new Square(new Black()); $blackSquare->opération(); // Rectangle rouge $redRectangle = new Rectangle(new Red()); $redRectangle->opération(); //Le résultat est un cercle blanc, un carré noir et un rectangle rouge
Ce qui précède est une introduction au mode pont PHP, j'espère que cela sera utile à tout le monde.