mirror of
https://github.com/DesignPatternsPHP/DesignPatternsPHP.git
synced 2025-02-24 09:42:24 +01:00
38 lines
752 B
PHP
38 lines
752 B
PHP
|
<?php
|
||
|
namespace DesignPatterns\Specification;
|
||
|
|
||
|
/**
|
||
|
* An interface for a specification
|
||
|
*/
|
||
|
interface SpecificationInterface
|
||
|
{
|
||
|
/**
|
||
|
* A boolean evaluation indicating if the object meets the specification
|
||
|
*
|
||
|
* @param Item $item
|
||
|
*
|
||
|
* @return bool
|
||
|
*/
|
||
|
public function isSatisfiedBy(Item $item);
|
||
|
|
||
|
/**
|
||
|
* Creates a logical AND specification
|
||
|
*
|
||
|
* @param SpecificationInterface $spec
|
||
|
|
||
|
*/
|
||
|
public function plus(SpecificationInterface $spec);
|
||
|
|
||
|
/**
|
||
|
* Creates a logical OR specification
|
||
|
*
|
||
|
* @param SpecificationInterface $spec
|
||
|
|
||
|
*/
|
||
|
public function either(SpecificationInterface $spec);
|
||
|
|
||
|
/**
|
||
|
* Creates a logical not specification
|
||
|
*/
|
||
|
public function not();
|
||
|
}
|