- 보통은 도메인을 분리하려는 목적
- compostion 을 decomposition 하는 과정 (assemble no)
정말 어려운 방법이다. 갑자기 새로운게 추가되면 다시 다 만들어야함
데이터에 따라 할 일들이 생긴다
장점: 안에서 모든 것을 해결한다.
단점: 만약 새로운 유형의 데이터가 추가 된다면 ?? -> 상태가 늘어나면 새로만들어야한다. -> 물론 유형이 추가될 여지가 없다면 장점이다.
-> 언제사용: (1) 경우의수가 확정, (2) 소속 된 메소드가 모든 상태에 해당하는 결과 값을 도출
상태가 없는 수준의 추상화를 먼저 한다. 상태에 따라서 상속 구조를 바꿔가면서 형을 더 만든다.
ADT 는 오히려 형이 줄어든다.
단점은 기능을 추가하면 다 같이 바뀐다 ... 성급한 추상화 금지 ... (메소드를 함부로 추가하지말라, 코틀린은 실드클래스로 한정가능)
if 케이스만큼 형을 생성
플래그로 분기처리