package com.cheng.zenofdesignpatterns.extension.newpatterns.specification.common;
/**
* 组合规格书
*/
public abstract class CompositeSpecification implements ISpecification {
// 是否满足条件有实现类实现
public abstract boolean isSatisfiedBy(Object candidate);
// and操作
public ISpecification and(ISpecification spec) {
return new AndSpecification(this, spec);
}
// not操作
public ISpecification not() {
return new NotSpecification(this);
}
// or操作
public ISpecification or(ISpecification spec) {
return new OrSpecification(this, spec);
}
}