specifications = $specifications; } public function isSatisfiedBy(Item $item): bool { $satisfied = []; foreach ($this->specifications as $specification) { $satisfied[] = $specification->isSatisfiedBy($item); } return !in_array(false, $satisfied); } }