주로 학습 목적으로 모기지 계산 도구의 디자인을 최적화 할 수있는 영역을 검토 중입니다. Anemic Domain Models에 대해 읽은 후에, 나는 Rich Model을 만드는 것에 관심을 가지게되었고 현재의 구현이 빈혈을 일으킬 수도 있음을 알았습니다!빈혈 도메인 모델 사례 분석
class MortgageCalculator {
Mortgage mortgage; // mortgage object containing loanAmount, interest rate, etc.;
calculateMonthlyPayment(); // calculates monthly payments using mortgage object's properties
}
class Mortgage { // Anemic?
loanAmount;
interestRate;
}
는 현재 모기지 객체는 객체 사이의 데이터 전송을 위해 주로 제공 등 여기
내가 고려하고 일부 개정 옵션이 있습니다 :
- 제거 여기에 의사의 현재 구현은 MortgageCalculator에서 모기지 객체를 꺼내고 모기지 을 순수하게 DTO로 사용하면서 계산기의 메소드가 인수를 취합니다 (예 : calculateMonthlyPayment (loanAmount, interestRate)). 이것은 모기지를 디커플링하는 데 도움이됩니다. Calculator를 Mortgage 오브젝트에서 가져 왔지만 여전히 모기지를 빈혈 모델로 사용합니다.
- 비즈니스 로직 (예 : calculateMonthlyPayment)과 모기지 속성 (예 : loanAmount)을 모두 포함하는 "풍부한"MortgageCalculator 모델로 두 클래스를 병합합니다. 내 우려 여기에 계산기 개체 인스턴스 변수로 피연산자를 보유하는 데 필요한 경우 확실하지 않다 그러나 그들은 데이터 전송, 저장 및 용이하게 빈혈을 해결할 것이라고 ?
이상적인 접근 방식이 무엇인지 궁금하거나 내가 그 요점을 놓치고 있습니까?