PDHBE / study

기술 서적 Study
0 stars 0 forks source link

[GoF 디자인패턴] 1.4 ~ 1.6 #3

Open PDHBE opened 3 years ago

PDHBE commented 3 years ago

1.4 디자인 패턴 카탈로그

1.5 카탈로그 조직화하기

스크린샷 2021-10-17 오후 4 44 52

1.6 디자인 패턴을 이용하여 문제를 푸는 방법

적당한 객체 찾기

객체의 크기 결정

객체 인터페이스의 명세

객체 구현 명세

재사용을 실현 가능한 것으로

위임

런타임 및 컴파일 타임의 구조를 관계짓기

변화에 대비한 설계

  1. 특정 연산에 대한 의존성

    • 요청 처리 방법을 직접 코딩하는 방식
  2. 하드웨어와 소프트웨어 플랫폼에 대한 의존성

  3. 객체의 표현이나 구현에 대한 의존성

    • 사용자가 객체의 모든 정보를 알고 있다면, 객체 변경시 사용자도 같이 변경해야 함
    • 객체를 캡슐화함으로써 변화의 파급을 막음
  4. 알고리즘 의존성

    • 변경 가능한 알고리즘은 분리해야함
  5. 높은 결합도

    • 높은 결합도를 가지면, 하나를 수정하기 위해 전체를 수정해야함
    • 결합도를 낮추어 유연성, 재사용성을 높여야 함
  6. 서브클래싱을 통한 기능 확장

    • 서브클래스를 정의하려면, 최상위 클래스부터 직속 부모 클래스까지 모든 것을 이해하고 있어야 함
    • 일반적으로 합성과 위임을 통한 행동 조합이 상속보다 훨씬 유연한 방법임
    • 하지만 합성을 많이 사용하면 이해하기가 어려워지기 때문에, 서브클래싱을 사용하는 디자인 패턴도 존재함
  7. 클래스 변경이 편하지 못한 점

    • 어떤 클래스 변경 시 기존 서브클래스의 다수를 수정해야 하는 등의 경우
    • 디자인 패턴은 이런 환경에서 클래스를 효과적으로 수정하는 방법 제시