哪种设计模式最适合以下内容:
Object包含子对象的集合,它们都实现与父对象相同的接口。父对象迭代所有子对象接口方法。
可能是以下任何一种:
代码示例:
interface Vehicle {
function canMove();
}
class TransportFleet implements Vehicle {
private $vehicles;
public function __construct(array $vehicles = array()) {
$this->vehicles = $vehicles;
}
public function canMove() {
foreach($this->vehicles as $vehicle) {
if (! $vehicle->canMove() ) {
return true;
}
}
}
}
答案 0 :(得分:2)
这是 Composite 设计模式。在UML类图中,它看起来如下(对应于您的描述):
更新1:
如果您查看两个类图,您会看到第二个图匹配第一个图的复合部分,这是复合设计模式的一般说明: