-
객체의 관계들은 어떤것이 있을까?Java 2018. 7. 25. 11:08반응형
다루고 있는, 앞으로 다룰 시스템에는 클래스, 객체가 하나인 것은 없습니다.
객체 지향 시스템에서 수많은 클래스와 객체가 존재하고 다양한 계층구조를 이루는데요.
이러한 계층을 이루는 객체들간의 관계에 대해 알아봅시다.
1. 객체 (Object) 란?
- 시스템의 기본 단위입니다.
- 속성과 기능으로 구성합니다.
2. 객체 지향 (Object-Oriented) 란?
- 시스템 분석 설계 기법 중 하나입니다.
- 시스템의 기본 단위를 객체로 상정하고, 객체와 객체의 관계를 중심으로 시스템을 분석, 설계하는 기법입니다.
* 소프트웨어 개발 프로세스 중 폭포수모델 <waterfall model>
: 요구분석 -> 설계 -> 구현 -> 테스트 -> 운영 중 분석과 설계에 해당한다.
3. 객체 지향 프로그래밍 (Object-Oriented Programming) 이란?
- 객체 지향 개념이 적용된 프로그래밍입니다.
- 객체 지향의 주요 개념으로 Encapsulation, Inheritance, Polymorphsim 으로 크게 세가지입니다.
4. 객체 관계 (Object Relation)
1) association
- use a 관계입니다.
- 다른 객체와의 일반적인 협력 관계를 가집니다.
ex) 사람이 렌트카를 이용합니다.
2) aggregation
* association과 aggregation은 개념적으로는 차이를 가지지만 실제 코드상으로는 차이가 거의 없습니다.
- has a 관계입니다.
- 다른 객체와의 구조적 관계를 가집니다. ( 전체와 부분의 개념적 관계에서 동일한 생명주기를 가지지 않습니다. )
ex) 사람이 스마트폰을 보유하고 사용합니다. ( 스마트폰 객체가 없더라고 사람 객체는 사라지지 않습니다. )
3) composition
- consist of 관계입니다.
- aggregation과 비슷하지만 전체와 부분 관계에서 전체와 부분은 동일한 생명주기를 가집니다.
ex) 사람은 뇌를 가지고 있습니다. ( 뇌 객체가 없다면 사람 객체도 없습니다. ㅜㅜ )
4) generalization
- is a 관계입니다.
- 다른 객체와 상속관계를 가집니다.
ex) 사람은 동물입니다.
5) realization
- 추상적인 interface를 실제 기능으로 구현하는 implement 관계입니다.
* interface란 클래스 또는 컴포넌트의 속성없이 기능만을 선언한 Operation의 집합입니다.
ex) 비행기와 새는 하늘을 나는 특징을 가집니다.
반응형'Java' 카테고리의 다른 글
Java SE 환경설정하는 방법 (0) 2018.07.29 자바의 예외(Exception)란 무엇일까? (0) 2018.07.26 static, final, abstract 무엇일까? (0) 2018.07.19 객체 지향3. 다형성(Polymorphism)이란 무엇일까? (0) 2018.07.17 객체 지향2-1. 오버로딩(Overloading)과 오버라이딩(Overriding)은 무엇일까? (0) 2018.07.16