Cet article présente le mode de combinaison du modèle de conception PHP, qui a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer
Modèle Combosite (Composite) est l'un des modèles structurels des modèles de conception. Son objectif principal est de combiner plusieurs objets dans une structure arborescente pour représenter la relation « partie entière ».
Exemple : Nous utilisons un diagramme en arbre pour représenter la province du Jiangsu->Ville de Nanjing->Le district de Qinhuai et le district de Jianye.
Parmi eux, la province du Jiangsu est le premier niveau, la ville de Nanjing appartient à la province du Jiangsu et est le deuxième niveau, tandis que le district de Jianye et le district de Qinhuai appartiennent à la ville de Nanjing et sont le troisième niveau.
Vous obtiendrez la structure comme indiqué :
-->江苏省 1级 -->-->南京市 2级 -->-->-->秦淮区 3级 -->-->-->建邺区 3级
Le rôle du mode combineur est que le client combine les objets via la même méthode et distingue le niveau maître-esclave, améliorant ainsi la flexibilité et l'évolutivité.
<?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 // 组合器模式 index.php header("Content-Type:text/html;charset=utf-8"); require_once "Composite.php"; // Composite.php // 先处理江苏省 $jiangsu = new Composite("江苏省"); // 再处理南京市 $nanjing = new Composite("南京市"); // 最后处理秦淮区和建邺区 $qinhuai = new Composite("秦淮区"); $jianye = new Composite("建邺区"); // 把南京添加到江苏省下 $jiangsu->Add($nanjing); // 把秦淮区和建邺区添加到南京市下 $nanjing->Add($qinhuai); $nanjing->Add($jianye); $jiangsu->Display(); // 显示
Mode pont du modèle de conception PHP
Modèle d'adaptateur de modèle de conception PHP
Modèle de générateur de modèles de conception PHP
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!