issues
search
berryberrybin
/
clean-architecture
만들면서 배우는 클린아키텍처 적용
0
stars
0
forks
source link
유스케이스 구현
#4
Open
berryberrybin
opened
2 years ago
berryberrybin
commented
2 years ago
도메인 엔티티 중심으로 유스케이스 구현
Ex) 한 계좌에서 다른 계좌로 송금하는 유스케이스
입금과 출금을 할 수 있는 Account 엔티티를 만들고, 출금계좌에서 돈을 출금해서 입금계좌로 돈을 입금하는 것
Account 엔티티 : 실제 계좌의 현재 스냅숏을 제공함
ActivityWindow값 객체(value object)에서 포착한 특정 기간의 활동만 보유함
활동창(activitywindow)의 첫번째 활동 바로 전의 잔고를 표현하는 baselineBalance(기준잔고)속성을 가지고 있음
현재 총 잔고 = baselineBalance에 activityWindow의 모든 활동들의 잔고를 합한 값이 됨
Activity 엔티티 : 계좌에 대한 모든 입금과 출금을 포착함
입금 withdraw()와 출금 deposit() 메서드는 새로운 활동을 활동창에 추가하는 역할
출금 하기 전에는 잔고를 초과하는 금액은 출금할 수 없도록 비즈니스 규칙을 검사함
유스케이스 단계
(1) 입력을 받는다 : adapter.in.web(인커밍어댑터)에 속하는 controller로 부터 입력을 받을 수 있음
(2) 비지니스 규칙을 검증한다
(3) 모델 상태를 조작한다 : 비지니스 규칙 충족하면 입력 기반으로 모델의 상태 변경
도메인 객체 상태를 바꾸고 영속성 어댑터를 통해 구현된 포트로 상태를 전달하여 저장될 수 있도록 함
다른 아웃고잉 어댑터를 호출 할 수도 있음
(4) 출력을 반환한다 : 아웃고잉 어댑터에서 온 출력값을, 유스케이스를 호출한 어댑터로 반환할 출력객체로 변환함
berryberrybin
commented
2 years ago
도메인 엔티티 중심으로 유스케이스 구현
유스케이스 단계