首页 » 网站建设 » php输出空心菱形技巧_PHP设计模式之组合模式

php输出空心菱形技巧_PHP设计模式之组合模式

访客 2024-11-13 0

扫一扫用手机浏览

文章目录 [+]

概述:将工具组合成树形构造以表示‘部分-整体’的层次构造。
组合模式使得用户对单个工具和组合工具的利用具有同等性。

组合和聚合都描述一个类长期持有其他类的一个或多个实例的情形。

php输出空心菱形技巧_PHP设计模式之组合模式

聚合:被包含工具是容器的核心部分,但是他们也可以被其他工具所包含。
聚合关系用一条以空心菱形开头的线来解释。

php输出空心菱形技巧_PHP设计模式之组合模式
(图片来自网络侵删)

组合:被包含的工具只能被它的容器所引用。
当容器被删除时,它也该当被删除。
组合关系的菱形是实心的

<?php

/

实行单元

/

abstract class Unit{

public function bombardStrength();

}

<?php

/

弓箭手

/

class ArcherUnit extends Unit{

public function bombardStrength(){

return 4;

}

}

<?php

/

激光大炮

/

class LaserCannonUnit extends Unit{

public function bombardStrength(){

return 10;

}

}

<?php

/

军队

/

class Arm{

private $units = array();

private $strength = 0;

public function addUnit(Unit $unit){

array_push($this->units, $unit);

}

public function bombardStrength(){

foreach ($this->units as $unit){

$this->strength += $unit->bombardStrength();

}

}

}

<?php

/

组合模式

/

public function actionCombine(){

$archer = new ArcherUnit;

$laserCannon = new LaserCannonUnit;

$arm = new Arm;

$arm->addUnit($archer);

$arm->addUnit($laserCannon);

echo $arm->bombardStrength();

}

相关文章