Open yepdi opened 2 years ago
우리가 인식하는 객체들에 적용하는 개념이나 아이디어
인스턴스 : 어떤 대상이 타입으로 분류될 때 그 대상을 타입
심볼 : 타입에 이름을 붙인 것
내연 : 타입에 속하는 개체들이 가지는 공통적인 속성이나 행동
외연 : 타입에 속하는 객체들의 집합
슈퍼타입 : 일반적인 타입
서브타입 : 특수한 타입
일반화 : 어떤 타입의 정의를 좀 더 보편적이고 추상적으로 만드는 과정
특수화 : 어떤 타입의 정의를 좀 더 구체적이고 문맥 종속적으로 만드는 과정
두 타입 사이에 행동이 호환될 경우에만 타입 계층으로 묶어야한다
인터페이스는 클라이언트가 기대하는 바에 따라 분리돼어야한다
서브클래싱
서브타이핑
is-a
상속의 용도
타입
개념 관점
우리가 인식하는 객체들에 적용하는 개념이나 아이디어
인스턴스 : 어떤 대상이 타입으로 분류될 때 그 대상을 타입
심볼 : 타입에 이름을 붙인 것
내연 : 타입에 속하는 개체들이 가지는 공통적인 속성이나 행동
외연 : 타입에 속하는 객체들의 집합
프로그래밍 언어 관점
객체지향 패러다임 관점
타입 계층
슈퍼타입 : 일반적인 타입
서브타입 : 특수한 타입
일반화 : 어떤 타입의 정의를 좀 더 보편적이고 추상적으로 만드는 과정
특수화 : 어떤 타입의 정의를 좀 더 구체적이고 문맥 종속적으로 만드는 과정
서브클래싱과 서브 타이핑
언제 상속을 사용해야 하는가?
행동 호환성
두 타입 사이에 행동이 호환될 경우에만 타입 계층으로 묶어야한다
인터페이스는 클라이언트가 기대하는 바에 따라 분리돼어야한다
서브클래싱
서브타이핑
리스코프 치환 원칙
is-a
관계에서 객체의 속성이 아닌 객체의 행동이 중요하다리스코프 치환 원칙은 유연한 설계의 기반
계약에 의한 설계와 서브타이핑