组合模式属于结构型模式
概述:将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。
组合和聚合都描述一个类长期持有其他类的一个或多个实例的情况。
聚合:被包含对象是容器的核心部分,但是他们也可以被其他对象所包含。聚合关系用一条以空心菱形开头的线来说明。
组合:被包含的对象只能被它的容器所引用。当容器被删除时,它也应该被删除。组合关系的菱形是实心的
立即学习“PHP免费学习笔记(深入)”;
/**
* 执行单元
*/
abstract class Unit{
public function bombardStrength();
}
系统介绍 45°C 商城系统,以 Thinkphp5.0 + Uniapp + Layui2.9 + Vue 为技术基石,精心打造出的全新 MINI 商城应用。其功能覆盖全面,无论是 PC 商城、H5 商城,还是公众号商城、微信小程序以及抖音小程序的制作都能完美胜任。采用标准系统结合插件模式开发,用户能够极为便捷地定制专属的个性模块。整个系统,从程序设计到 UI 呈现,都秉持着一贯的小而美理念。程
0
/**
* 弓箭手
*/
class ArcherUnit extends Unit{
public function bombardStrength(){
return 4;
}
}
/**
* 激光大炮
*/
class LaserCannonUnit extends Unit{
public function bombardStrength(){
return 10;
}
}
/**
* 军队
*/
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();
}
}
}
/**
* 组合模式
*/
public function actionCombine(){
$archer = new ArcherUnit;
$laserCannon = new LaserCannonUnit;
$arm = new Arm;
$arm->addUnit($archer);
$arm->addUnit($laserCannon);
echo $arm->bombardStrength();
}
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号