PromleeBlog
sitemapaboutMe

posting thumbnail
GRASP

📅

🚀

GRASP란 (What is GRASP?)🔗

G
eneral
R
esponsibility
A
ssignment
S
oftware
P
atterns
OOAD로 소프트웨어를 구성할 때의 일반적인 작업

GRASP는
협력 객체
책임을 할당
하는 방법을 제시

🚀

책임 (Responsibility)🔗

클래스의 계약 또는 의무
아는 책임
(knowing responsibility)
하는 책임
(doing responsibility)

🚀

책임 할당 일반 원칙 (General Principles of Assigning Responsibilities)🔗

  1. Information Expert
  2. Creator
  3. Controller
  4. Low Coupling
  5. High Cohesion
  6. Polymorphism
  7. Pure Fabrication
  8. Indirection
  9. Protected Variations

🚀

모듈성 (Modularity)🔗

설계 목표
모듈성은 프로그래머가 한 번에 처리해야 할 전체 복잡성을 줄여준다
모듈성 측정

🚀

결합의 개념 (Concept of Coupling)🔗

결합
낮은 결합 추구할 것
높은 결합의 단점

🚀

객체 지향 언어에서의 결합 형태 (Types of Coupling in Object-Oriented Languages)🔗

Type X가 Type Y에 의존하는 경우

🚀

응집의 개념 (Concept of Cohesion)🔗

모듈 내 요소들이 얼마나 강하게 관련되어 있는지의 측정
관련된 책임들이 하나의 관리 가능한 단위로 배치된다
단일 책임 원칙(SRP)와 관련이 있다

높은 응집도를 추구할 것
높은 응집도의 장점

🚀

GRASP 원칙 패턴 (GRASP Patterns)🔗

창조자 (Creator)🔗

클래스 간의 책임 할당을 정의하는 GRASP의 원칙 중 하나로, 특정 클래스의
인스턴스를 생성할 책임
을 어떤 클래스에게 할당할지 결정하는 가이드라인을 제공한다.

정보 전문가 (Information Expert)🔗

클래스 간의 책임 할당을 정의하는 GRASP의 원칙 중 하나로, 특정 작업을 수행하는 데
필요한 정보
를 가지고 있는 클래스에게 책임을 할당하는 가이드라인을 제공한다.

컨트롤러 (Controller)🔗

클래스 간의 책임 할당을 정의하는 GRASP의 원칙 중 하나로,
사용자 인터페이스 이벤트를 처리하고 시스템 작업을 시작하는 책임
을 어떤 클래스에게 할당할지 결정하는 가이드라인을 제공한다.

낮은 결합도 (Low Coupling)🔗

클래스 간의 책임 할당을 정의하는 GRASP의 원칙 중 하나로,
클래스 간의 상호 의존성을 최소화
하는 가이드라인을 제공한다.

높은 응집도 (High Cohesion)🔗

클래스 간의 책임 할당을 정의하는 GRASP의 원칙 중 하나로,
클래스 내부의 요소들이 얼마나 강하게 관련되어 있는지
를 측정하는 가이드라인을 제공한다.

순수 가공 (Pure Fabrication)🔗

클래스 간의 책임 할당을 정의하는 GRASP의 원칙 중 하나로,
책임을 할당할 수 있는 적절한 클래스가 없을 때
책임을 할당할 클래스를 생성하는 가이드라인을 제공한다.

다형성 (Polymorphism)🔗

클래스 간의 책임 할당을 정의하는 GRASP의 원칙 중 하나로,
객체의 타입에 따라 다르게 동작
하는 책임을 어떤 클래스에게 할당할지 결정하는 가이드라인을 제공한다.

간접 (Indirection)🔗

클래스 간의 책임 할당을 정의하는 GRASP의 원칙 중 하나로,
클래스 간의 직접적인 상호 작용을 최소화
하는 가이드라인을 제공한다.

변화 보호 (Protected Variations)🔗

클래스 간의 책임 할당을 정의하는 GRASP의 원칙 중 하나로,
변화에 대한 보호
를 제공하는 가이드라인을 제공한다.