. 상속의 종류
. 클래스 상속
= 구현 상속 = 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
서로 독립적으로 확장되고 함께 동작하는 개념들
추상과 구현을 분리
예) 하나는 논리적 개념(추상)을 확장,
다른 하나는 물리적 개념(구현) 확장.
댓글 없음:
댓글 쓰기