GRASP - High cohesion 설계 패턴 적용
객체지향 설계에서 책임 할당에 대한 지침을 제공하는 방법론인 GRASP에 대해 알아보자.
GRASP - High cohesion 설계 패턴 적용
GRASP의 High cohesion 설계 패턴 적용
High cohesion = 높은 응집도
이 설계 기법은 모듈이나 클래스가 단일한 목적을 잘 수행하는 부분에 중점을 둔 설계 기법이다.
상기 이미지를 보자면 UserCommand가 UI 출력과 데이터 보관 처리를 모두 맡고 있다.
이는 낮은 응집도를 지녔다고 한다.
이를 UI 출력과 데이터 보관 기능을 클래스로 나눠주면 하나의 목적을 가진 클래스 2개가 만들어진다.
이때 높은 응집도를 지녔다고 한다.
High cohesion을 설계를 지켜졌을 때 장점
- 이해하기가 쉽다.
- 유지보수에 용이하다.
- 재사용성이 높아진다.
- 테스트가 용이하다.
캡슐화(encapculation)
데이터와 데이터 처리하는 메서드를 하나의 클래스로 묶는데 이를 캡슐화라고한다.
데이터를 은닉 시켜 데이터 무결성을 유지하고 복잡한 로직을 감추면서 가독성과 유지보수성이 높아진다.
실습 프로젝트 myapp 적용 전과 후
- High cohesion 적용 전
- UserCommand 클래스 안에서 User를 더하기 위해 질문을 던지는 UI 출력과 답을 받아 데이터 보관 처리를 모두 진행했다.
- High cohesion 적용 후
- UserCommand에서는 UI 출력만 담당하고 UserList라는 클래스를 만들어 데이터 보관 처리를 진행했다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.