PHP7 Specification

This commit is contained in:
Dominik Liebler
2016-09-22 12:54:03 +02:00
parent 09797dd553
commit ce1b53847d
12 changed files with 134 additions and 324 deletions

View File

@@ -0,0 +1,30 @@
<?php
namespace DesignPatterns\Behavioral\Specification;
class OrSpecification implements SpecificationInterface
{
/**
* @var SpecificationInterface[]
*/
private $specifications;
/**
* @param SpecificationInterface[] ...$specifications
*/
public function __construct(SpecificationInterface ...$specifications)
{
$this->specifications = $specifications;
}
public function isSatisfiedBy(Item $item): bool
{
$satisfied = [];
foreach ($this->specifications as $specification) {
$satisfied[] = $specification->isSatisfiedBy($item);
}
return in_array(true, $satisfied);
}
}