Is a , Has a 관계


기존의 클래스의 특성을 가지는 새로운 클래스를 만드는 방법은 크게 2 가지가 있다.

기존의 클래스를 상속받아 만드는 방법과 기존의 클래스를 클래스 멤버로 가지는 방법이다.

첫번의 방법을 Is a , 관계라 하고 두 번째의 방법을 has a 라고 한다.

이 개념을 명확히 해서 클래스 설계에 적용하면 고민하지 않고 상속과 멤버의 결정을 내릴 수 있다.


사람
학생 군인 회사원
대학생 고등학생 중학생

Is a 관계

이 방법은
"새로운 클래스가 기존의 클래스의 한 종류이다.(is a)"
"New Object is a type of a original class."
라는 말이다.
이 개념이 성립하면 새로운 클래스는 기존의 클래스를 extends 를 사용해 상속 받아만든다.
사람의 경우를 보자.


학생은 사람의 특징을 나타낸다. ” 학생은 사람이다.” 이 말이 성립한다.


그러므로 학생 클래스를 만들 때 사람 클래스를 상속 받아 만든다.

has a 관계

이 방법은
"새로운 클래스가 기존의 클래스를 포함한다.(has a)"
"One object has a reference to another object"
라는 말이다. 학급이라는 클래스를 만든다고 생각해 보자.

학급에는 선생님, 학생, 주번이라는 멤버 변수가 있을 수 있다.


학급은 학생을 포함하고 있다.


그러므로 학급이라는 클래스를 만들 때는 학생을 상속받는 것이 아니라 학생을 멤버 변수로 포함한다.

'IT 개발 소식 > IT 용어' 카테고리의 다른 글

싱글턴 패턴 (singleton pattern) 이란?  (0) 2016.10.06
모델(Model) 이란?  (0) 2016.10.06
IMAP 이란?  (0) 2015.11.09
hosts 파일 위치  (0) 2015.08.04
Posted by Hoya0415
,