Inheritance(상속)
상위 클래스가 존재하고 하위 클래스에서 상위 클래스를 extends 하는 경우를 상속이라 부른다.
확장에 용이하고 기능의 중복이 없어 코드가 간결하여 유지보수가 쉬워진다.
그러나 상위 클래스와 하위 클래스의 결합이 강해지기 때문에, 상위 클래스가 변경될 경우 이를 상속 받는 하위 클래스도 수정되어야 하는 경우가 많다.
Aggregation과 Composition은 모두 Association의 종류이며 has-a 관계를 가진다.
IS - A Relationship
부모 클래스와 자식 클래스를 구별할 때 자주 사용하는 표현이다. 주로 상속 관계를 의미한다. (extend 키워드로 명시)
(사과는 과일이다)
Association
모든 오브젝트가 각자의 라이프사이클을 가지고 있으며 다른 오브젝트를 소유하지 않는 경우이다.
(선생님/학생) : 일대다의 관계를 가질 수 있지만, 어느 한 쪽이 소유를 하지는 않는 관계이다. 각자 생성/소멸을 독립적으로 한다.
Aggregation
Association의 특별한 경우이다. 각자의 사이클을 라이프사이클을 가지고 있지만, 한 쪽이 다른 한 쪽을 소유하는 관계이다.
(직원/부서) : 부서가 여러 명의 직원을 가질 수 있지만, 직원은 여러 개의 부서를 가질 수 없다. 그러나 그렇다고 해서 부서가 사라지면 직원도 사라지는 것은 아니다. 이것을 'has-a 관계'라고 한다.
Composition
Composition은 Aggregation보다 강력하게 연관된 결합이며 Aggregation의 특별한 경우이다. 죽음의 연관 관계라고 불리기도 한다.
(집/방) : 집은 여러 개의 방을 소유하고 방은 절대 독립적인 라이프사이클을 가질 수 없다. 만약 집이 소멸되면 방도 소멸되기 때문이다.
HAS - A Relationship
특정 기능을 사용하고 싶을 때 만들어진다.
(차는 엔진을 가지고 있다)와 같이 기능을 포함하고 싶을 때 사용한다.
'Computer Science' 카테고리의 다른 글
간단 정리 - is-a관계와 has-a관계 (0) | 2024.04.08 |
---|---|
객체 지향 설계의 5대 원칙 : SOLID (0) | 2024.03.25 |
Inheritance(상속)
상위 클래스가 존재하고 하위 클래스에서 상위 클래스를 extends 하는 경우를 상속이라 부른다.
확장에 용이하고 기능의 중복이 없어 코드가 간결하여 유지보수가 쉬워진다.
그러나 상위 클래스와 하위 클래스의 결합이 강해지기 때문에, 상위 클래스가 변경될 경우 이를 상속 받는 하위 클래스도 수정되어야 하는 경우가 많다.
Aggregation과 Composition은 모두 Association의 종류이며 has-a 관계를 가진다.
IS - A Relationship
부모 클래스와 자식 클래스를 구별할 때 자주 사용하는 표현이다. 주로 상속 관계를 의미한다. (extend 키워드로 명시)
(사과는 과일이다)
Association
모든 오브젝트가 각자의 라이프사이클을 가지고 있으며 다른 오브젝트를 소유하지 않는 경우이다.
(선생님/학생) : 일대다의 관계를 가질 수 있지만, 어느 한 쪽이 소유를 하지는 않는 관계이다. 각자 생성/소멸을 독립적으로 한다.
Aggregation
Association의 특별한 경우이다. 각자의 사이클을 라이프사이클을 가지고 있지만, 한 쪽이 다른 한 쪽을 소유하는 관계이다.
(직원/부서) : 부서가 여러 명의 직원을 가질 수 있지만, 직원은 여러 개의 부서를 가질 수 없다. 그러나 그렇다고 해서 부서가 사라지면 직원도 사라지는 것은 아니다. 이것을 'has-a 관계'라고 한다.
Composition
Composition은 Aggregation보다 강력하게 연관된 결합이며 Aggregation의 특별한 경우이다. 죽음의 연관 관계라고 불리기도 한다.
(집/방) : 집은 여러 개의 방을 소유하고 방은 절대 독립적인 라이프사이클을 가질 수 없다. 만약 집이 소멸되면 방도 소멸되기 때문이다.
HAS - A Relationship
특정 기능을 사용하고 싶을 때 만들어진다.
(차는 엔진을 가지고 있다)와 같이 기능을 포함하고 싶을 때 사용한다.
'Computer Science' 카테고리의 다른 글
간단 정리 - is-a관계와 has-a관계 (0) | 2024.04.08 |
---|---|
객체 지향 설계의 5대 원칙 : SOLID (0) | 2024.03.25 |