package org.dayatang.domain.specification; /** * 抽象规范实现,实现了规范的“与”、“或”、“非”操作。 * * @param <T> 泛型参数 */ public abstract class AbstractSpecification<T> implements Specification<T> { /** * {@inheritDoc} */ @Override public Specification<T> and(final Specification<T> specification) { return new AndSpecification<T>(this, specification); } /** * {@inheritDoc} */ @Override public Specification<T> or(final Specification<T> specification) { return new OrSpecification<T>(this, specification); } /** * {@inheritDoc} */ @Override public Specification<T> not() { return new NotSpecification<T>(this); } }