説明する
1. 元々無関係だった 2 つのクラスを結合し、2 つのクラスのメソッドと属性を使用して新しい結果を出力します。
2. 構造は、抽象クラス、洗練された抽象クラス、実装クラス、具体的な実装クラス、およびクライアント コードに分割されます。
例
/** * カラー抽象クラス * クラスカラー */ 抽象クラス Color { /** * @return 混合 */ 抽象パブリック関数 run(); } /** * ブラック * クラスブラック */ クラス Black は Color を拡張します { パブリック関数 run() { // TODO: run() メソッドを実装します。 「黒」を返します。 } } /** *ホワイト*クラスホワイト */ クラス White は Color を拡張します { パブリック関数 run() { // TODO: run() メソッドを実装します。 「白」を返します。 } } /** * レッド * クラスレッド */ クラス Red は Color を拡張します { パブリック関数 run() { // TODO: run() メソッドを実装します。 「赤」を返します。 } } /** * 形状抽象クラス * クラス形状 */ 抽象クラス Shape { /** * カラー * @var カラー */ 保護された$color; /** * 形状コンストラクター。 * @param カラー $colour */ パブリック関数 __construct(Color $colour) { $this->color = $colour; } /** * @return 混合 */ 抽象パブリック関数の操作(); } /** * ラウンド * クラスラウンド */ クラス Round extends Shape { /** * @return 混合|void */ パブリック関数操作() { // TODO: Operation() メソッドを実装します。 echo $this->colour->run() 'circle
'; } } /** * 長方形 * クラス長方形 */ クラス Rectangle は Shape を拡張します { /** * @return 混合|void */ パブリック関数操作() { // TODO: Operation() メソッドを実装します。 echo $this->colour->run() '長方形
'; } } /** * スクエア * クラススクエア */ クラス Square は Shape を拡張します { /** * @return 混合|void */ パブリック関数操作() { // TODO: Operation() メソッドを実装します。 echo $this->colour->run() 'square
'; } } // クライアントコード // ホワイトラウンド $whiteRound = new Round(new White()); $whiteRound->operation(); // ブラックスクエア $blackSquare = new Square(new Black()); $blackSquare->operation(); // 赤い四角形 $redRectangle = new Rectangle(new Red()); $redRectangle->operation(); //実行結果は白丸、黒四角、赤長方形
以上は PHP ブリッジ モードの概要でした。皆様のお役に立てれば幸いです。