이렇게 하나의 기능은 여러 하위 기능을 이용해서 구현하게 된다.
기능은 곧 책임
- 분리한 각 기능을 알맞게 분배하는 것 (객체지향 설계의 기본 과정)
즉 , 기능분리 후 각 객체에게 분리한 기능을 배분하는 것
ex) 암호변경 전체 기능을 ChangePaswordServie에 할당
public class ChangePasswordService{
public Result changePassword(String id, String oldPw, String newPw){
Member mem = memberRepository.findOne(id);
if (mem == null){
return Result.No_Member;
}
}
try {
mem.changePassword(oldPw, newPw);
return Result.SUCCESS;
} catch(BadPasswordException ex){
return Result.BAD_PASSWORD;
}
}
전형적인 역할분리