2005년 4월 28일 목요일

[å]Design Pattern 1 - GOF

. 상속의 종류
  . 클래스 상속
    = 구현 상속 = private 상속
    WhiteBox reuse
    구현 종속성을 가짐
    재사용(reuse)이 목적
    어플리케이션 기능 확장


  . 인터페이스 상속
    = subclassing = 가상 함수를 갖는 class를 pubilc 상속
    = 추상 class 상속
    = 객체 합성
    BlackBox reuse
    구현 종속성이 줄어듬
    Polymorphism이 목적
    Dynamic Binding


. 위임(delegation)
  . 자신(caller object)의 주소(this)를 call할 때 넘김.
    그렇게 하면 callee가 caller의 주소를 member variable 같은 곳에
    저장하고 있다가 적절한 시점에 그것의 method를 call할 수 있다.


. parameterized type
  = generic programming
  = template


. 관계
  . 집합 관계
    맴버 변수로 object를 포함하고 있음.
    강력한 영속성 - 수명이 같음.
    관계가 정적임, 컴파일 타임에 결정됨.


  . 참조 관계
    포인터(이것도 맴버 변수)로 다른 object의 주소를 가지고 있음.
    관계가 동적임, 런타임에 결정됨.(계속 바뀜)


. Composite Pattern
  Recursive Composition을 쉽게 만듬.
  Hiarchy
  Basic Element와 Composite Element를 같은 방법으로 다룰 수 있게 함.


. Strategy Pattern
  데이터와 알고리즘을 분리하여, 알고리즘을 쉽게 추가할 수 있게 한다.


. Decorator Pattern
  새로운 wrapper, 꾸미는 것을 쉽게 추가할 수 있게 함.


. Factory Pattern
  같은 abstrct class를 상속한 여러 종류의 concrete class를 생성함.
  new(생성) 부분의 코드를 깔끔하게 해줌.
  더 쉽게 Porting하거나 새로운 concrete class를 추가할 수 있음.


. Bridge Pattern
  서로 독립적으로 확장되고 함께 동작하는 개념들
  추상과 구현을 분리
  예) 하나는 논리적 개념(추상)을 확장,
      다른 하나는 물리적 개념(구현)  확장.


 

댓글 없음:

댓글 쓰기