GRASP 객체지향

객체 책임에 관한 9가지 원칙
1. Information Expert
> 역활을 수행할 수 있는 정보를 가지는 객체에 책임을 부여
> 객체는 데이타와 처리로직이 함께 묶여 있으므로, 자신의 데이타를 감추고자 한다면 오직 자기자신의
   처리 로직안에서만 데이타를 처리하고 외부에는 기능만 제공
2. Creator
> 객체의 생성은 객체의 컨텍스트를 아는 객체에 부여
 ex) A의 생성을 B에 부여
    2-1 B객체가 A를 포함
    2-2 B객체가 A객체의 정보를 기록하는 경우
    2-3 A객체가 B객체의 일부
    2-4 B객체가 A객체를 긴밀하게 사용
    2-5 B객체가 A객체의 생성에 필요한 정보를 가지고 있는 경우
3. Controller
> 사용자의 요청(이벤트)를 처리할 객체를 만들자.
> 객체간의 커플링을 감소시켜 준다.
4. Low Coupling
> 객체들간, 서브시스템들간 상호 의존도가 낮게 역할을 부여
> 객체,서브 시스템의 재사용성을 높이고, 시스템 관리의 편리성을 높여줌
5. High Cohesion
> 각 객체가 밀접하게 연관된 역할들만 가지도록 역할을 부여
6. Polymorphism
> 객체의 종류에 따라 행동 양식이 바뀐다면 다형성 기능사용
7. Pure Fabrication
> 기능적인 역할은 한곳으로
> 데이타베이스에 정보를 저장하거나, 로그를 기록하는 등의 작업은 Information Expert 측면에서는 각 객체에 있는것이 맞지만
  시스템 전반에 사용되는 기능으로 각 객체에 기능이 있는것은 중복, 수정 발생시 전체를 수정해야 함
8. Indirection
> 두 객체간의 커플링을 감소시키려면 인터페이스를 사용
9. Protected Varation
> 변경될 여지가 있는 곳에 안정된 인터페이스를 정의 하여 사용
> ex) ODBC


덧글

댓글 입력 영역