본문 바로가기

JAVA

도메인 모델링 3가지 개념

반응형
도메인 모델링

비즈니스 사용자의 편의성을 어떻게 개선할수 있을까?
'어떤 조건이 주어졌을때(when), 이런작업을 한다(then)' 같은 간단한 조합을 규칙으로 지정할수 있게 한다.
이 도메인에는 세가지 개념이 있다.

  • 조건: 어떤 팩트에 적용할 조건(참이나 거짓으로 평가됨)
  • 액션: 실행할 연산이나 코드 집합
  • 규칙: 조건과 액션을 합친것, 조건이 참일때만 액션을 실행한다.

조건

@FunctionalInterface
public interface Condition {

    boolean evaluate(Facts facts);
}

규칙

@FunctionalInterface
public inference Rule {
    void perform(Facts facts);
}

규칙의 개념 모델링

public class DefaultRule implements Rule {
    private final Condition condition;
    private final Action action;

    public Rule(final Condition condition, final Action action) {
        this.condition = condition;
        this.action = action;
    }

    @Override
    void perform(Facts facts) {
        if(condition.evaluate(facts)) {
            action.execute(facts);
        }
    }
}

규칙 만들기

final Condition condition = (Facts facts) -> "CEO".equals(facts.getFact("jobTitle"));
final Action action = (Facts facts) -> {
    var name = facts.getFact("name");
    Mailer.sendMail("sales@company.com", "Relevant customer" + name);
};

final Rule rule = new DefaultRule(condition, action);

 

실전자바 소프트웨어 개발

저자 - 라울-게이브리얼 우르마, 리처드 워버턴, 역자 - 우정은

반응형

'JAVA' 카테고리의 다른 글

이펙티브 자바 # 3  (0) 2021.07.30
이펙티브 자바 #1  (0) 2021.07.27