Added Specification pattern

This commit is contained in:
martin
2013-11-24 22:30:06 +00:00
parent 1e76d98540
commit 6edac3f229
9 changed files with 384 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
<?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();
}