GRASP Pattern?
General
Responsibility
Assignment
Software
Pattern,
OO 디자인의 핵심은 각 객체에 책임을 부여하는 것으로, 책임을 부여하는 원칙을 말하는 패턴이다.
총 9가지의 원칙을 가지고 있다.
Information Expert
책임을 수행할 수 있는 데이터를 가지고 있는 객체에 책임을 부여한다.
정보 은닉을 통해 자신의 데이터를 감추고 오직 메소드로만 데이터를 처리하고 외부에는 그 기능(책임)만 제공한다.
Creator
B 객체가 A 객체를 포함
B 객체가 A 객체의 정보를 기록
B 객체가 A 객체를 긴밀히 사용
B 객체가 A 객체의 생성에 필요한 정보 가짐
위 관계 중 하나라도 포함되면 A의 생성을 B의 책임으로 부여한다.
Controller
시스템이벤트(IO 등)를 처리하는 객체를 따로 만든다.
Low Coupling
객체들간, 서브 시스템들간 상호의존도가 낮도록 책임을 부여한다. (재사용성 증가, 시스템 관리 편리)
High Cohesion
각 객체가 밀접하게 연관된 책임들만 가지도록 구성한다.
Polymorphism
객체의 종류에 따라 행동 양식이 바뀐다면 종류를 체크하는 조건문을 사용하지 말고 다형성 기능을 사용
Pure Fabrication
도메인에 관련된 문제를 대표하는 것이 아니라면, 기능적인 책임을 별도로 한 곳에 관리하는 객체를 만든다.
시스템 전반적으로 사용하고 있는 기능을 변경하면 모든 객체를 수정해야 하게 된다. 따라서 공통적인 기능을 제공하는 책임을 한 곳으로 모아서 가상의 객체, 서브시스템을 만들어서 그럴 일이 없도록 한다.
Indirection
두 객체 사이의 직접적인 coupling을 피하고 싶다면 그 사이에 다른 매개체(인터페이스)를 통해 전달한다.
Protected Variations
변경될 여지가 있는 곳에 안정된 인터페이스를 정의해서 사용한다.
'학교강의필기장 > OOP' 카테고리의 다른 글
UP Process (0) | 2023.12.11 |
---|---|
State Machine Diagram (0) | 2023.12.11 |
UML Class Diagram (1) | 2023.12.11 |
Interaction Diagram - Sequence Diagram (0) | 2023.12.11 |
Interaction Diagrams - Communication Diagram (0) | 2023.12.10 |