Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- pipenv
- 상속
- DOM
- removetooltip
- Python
- 강원도속초맛집
- 컴퓨터과학
- 건대입구맛집
- richtext
- 노마드코더
- popupmenubutton
- 코딩독학
- 포인터
- BeautifulSoup
- Django
- 장고
- 추상클래스
- python3
- JavaScript
- 알고리즘
- c언어문자열
- 부스트코스
- 성수동카페
- FLUTTER
- 속초여행
- 아스키코드
- 가상환경
- 남양주맛집
- 정렬알고리즘
- 자바
Archives
- Today
- Total
YUYANE
Java/ 상속 vs 컴포지션 본문
상속 vs 컴포지션
1) 공통
- 재사용성이 목적
- 많은 경우에 두 가지 모두 사용 가능
2) 성능이 중요한 경우
- 상속 : 개체 생성 시, 메모리가 하나의 덩어리(초기화를 한 번만 하므로)
- 컴포지션 : 개체 생성 시, 메모리가 여러 덩어리
- 메모리 상의 차이는 실행 성능에 영향을 미친다. 개체가 여러 메모리로 나뉘어져 있으면 속도가 느려짐
이유 : cpu는 메모리로부터 데이터를 받아와 연산한다.
- 상속 모델로 만든 개체 : 개체가 한 번에 캐시 메모리에 들어갈 가능성이 높음
- 컴포지션 모델로 만든 개체 : 개체 내 부품 수 만큼 캐시 메모리로 로딩할 가능성이 높음
- 프로그래밍 언어에 따라 새로운 메모리를 할당하고 해제하는 것에 있어서 특히 느린 것이 있음
- 상속 : 메모리 할당/해제가 딱 한 번씩
- 컴포지션 : 한 번 + 부품 수 만큼씩
- 결론 : 성능이 중요한 경우에는 상속을 사용하는 것이 낫다.
3) 자식 개체들에 한꺼번에 명령을 내리고 싶을 때
- 상속 사용
4) 일반적인 경우
- 상식적으로 생각할 것
- has-a 와 is-a 관계에 충실하자(다만, 본인이 아는 정도에 따라서 상속/컴포지션이 나뉠 수 있다)
** 때로는 둘 다 사용할 수도 있다
'Programming Languages > JAVA' 카테고리의 다른 글
Java/ final (0) | 2020.12.22 |
---|---|
Java/ 다형성(polymorphism) (0) | 2020.12.22 |
Java/ 재사용성 (0) | 2020.12.16 |
Java / 중복되는 상태는 지우자 (0) | 2020.12.15 |
Java/ Base Entity (0) | 2020.12.14 |
Comments