この記事では、特定の参考値を持つ PHP デザイン パターンの結合モードを紹介します。必要な友達はそれを参照できます
デザイン パターンに属するコンバイナー (コンポジット) モード 。構造パターンの 1 つで、その主な目的は、複数のオブジェクトをツリー状の構造に組み合わせて「全体」の関係を表現することです。
例: 樹形図を使用して、江蘇省 -> 南京市 -> 秦淮区および建業区を表します。
その中で、江蘇省は第1レベル、南京市は江蘇省に属し第2レベル、建業区と秦淮区は南京市に属し第3レベルです。
次のような構造が得られます:
-->江苏省 1级 -->-->南京市 2级 -->-->-->秦淮区 3级 -->-->-->建邺区 3级
コンバイナーモードの役割は、クライアントが同じ方法でオブジェクトを結合し、マスター/スレーブレベルを区別して改善することです。柔軟性と拡張性。 Rreree<?php
/** 抽象一个总组合器类
* abstract IComposite
*/
abstract Class IComposite
{
protected $name;
function __construct($name)
{
$this->name = $name;
}
abstract function Add(IComposite $place);
abstract function Display($level);
}
/** 组合器类 供客户端调用
* Composite
*/
Class Composite extends IComposite
{
private $places = array();
function __construct($name)
{
parent::__construct($name);
}
function Add(IComposite $place)
{
$this->places[] = $place;
}
/** 显示方法
* Display
* $level 级别 默认江苏省为 1级
*/
function Display($level = "1")
{
$pre = "";
for ($i=0; $i < $level; $i++) {
$pre.= "-->";
}
$pre.=$this->name."<br/>";
echo $pre;
foreach ($this->places as $v) {
// 往后南京市 级别加1 秦淮区在南京市基础上再加1
$v->display($level+1);
}
}
}
PHPデザインパターンブリッジモード
以上がPHPデザインパターン組み合わせパターンの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。