MailItems 큐를 처리하는 시나리오가 있습니다. 각 MailItem을 처리하고 나면 MailItem의 상태를 업데이트해야합니다. 상태를 업데이트하는 논리는 상당히 복잡합니다. 내 생각으로는 LogItem 클래스 내부에 논리 자체를 캡슐화하지 말고 나중에 관리하기 쉽도록 별도의 클래스에 캡슐화해야한다는 것입니다.복잡한 비즈니스 로직을 어떻게 구현해야합니까?
제 질문은 무엇이 가장 좋은 방법입니까?
사양 패턴을 고려했습니다. 뿐만 아니라하여,
public interface ISpecification<T>
{
bool IsSatisfiedBy(T candidate);
}
내 문제는이 특별한 경우에 내 로직이 후보 객체의 내부 상태에 의해뿐만 아니라 영향이다 :이 패턴에 대한 나의 연구는로 정의 ISpecification 인터페이스에 달려 다음이다 논리에서 고려해야 할 외부 값.
따라서는 MailItem 내 메소드 서명은 다음과 같이 보일 필요가있다 :
public void ChangeStatus(bool mailSentSuccessfully)
표준 ISpecification 인터페이스는 외부 값 전달에 대한 수용하지 않습니다. 표준 구현을 간단하게 "구부릴 것"입니까, 아니면 패턴 정의의 "규칙"을 위반합니까? 이것이 답이 아니라면 어떤 패턴 기반 옵션을 조사 할 수 있습니까?