ilustrar
1. Combine dos clases originalmente no relacionadas y luego use los métodos y atributos de las dos clases para generar un nuevo resultado.
2. La estructura se divide en clases abstractas, clases abstractas refinadas, clases de implementación, clases de implementación concretas y código de cliente.
Ejemplo
/** * Clase abstracta de color * Clase Color */ color de clase abstracta { /** * @retorno mixto */ ejecución de función pública abstracta(); } /** * Negro * Clase Negro */ clase Negro extiende Color { ejecución de función pública() { // TODO: Implementar el método run(). devolver 'negro'; } } /** *Blanco*Clase Blanco */ clase El blanco extiende el color { ejecución de función pública() { // TODO: Implementar el método run(). devolver 'blanco'; } } /** * Rojo * Clase Rojo */ clase Rojo extiende Color { ejecución de función pública() { // TODO: Implementar el método run(). devolver 'rojo'; } } /** * Clase abstracta de forma * Forma de clase */ forma de clase abstracta { /** *Color* @var Color */ color protegido $; /** * Constructor de formas. * @param Color $color */ función pública __construct(Color $color) { $este->color = $color; } /** * @retorno mixto */ operación de función pública abstracta(); } /** * Ronda * Ronda de Clase */ clase Ronda extiende Forma { /** * @return mixto|vacío */ operación de función pública () { // TODO: Implementar el método operación(). echo $this->color->run() 'círculo<br>'; } } /** * Rectángulo * Rectángulo de clase */ clase Rectángulo extiende Forma { /** * @return mixto|vacío */ operación de función pública () { // TODO: Implementar el método operación(). echo $this->color->run() 'Rectángulo<br>'; } } /** * Cuadrado * Clase Cuadrado */ clase Cuadrado extiende Forma { /** * @return mixto|vacío */ operación de función pública () { // TODO: Implementar el método operación(). echo $this->color->run() 'cuadrado<br>'; } } // Código de cliente // Ronda blanca $whiteRound = new Round(new White()); $redondablanca->operación(); // Cuadrado Negro $cuadradonegro = nuevo Cuadrado(nuevo Negro()); $cuadradonegro->operación(); // Rectángulo rojo $redRectangle = new Rectángulo(new Red()); $redRectangle->operación(); //El resultado de la ejecución es un círculo blanco, un cuadrado negro y un rectángulo rojo.
Lo anterior es una introducción al modo puente PHP. Espero que sea útil para todos.