객체지향의 원리
Goal
- 추상화에 대해서 이해할 수 있다.
1. 추상화란?
"추상화는 사물들의 공통된 특징, 즉 추상적 특징을 파악해 인식의 대상으로 삼는 행위다. 추상화가 가능한 개채들은 개체가 소유한 특성의 이름으로 하나의 집합을 이룬다. 그러므로 추상화한다는 것은 여러 개채들을 집합으로 파악한다는 것과 같다. 추상적 특성은 집합을 구성하는 개채들을 '일반화' 하는 것이므로 집합의 요소들에 보편적인 것이다."
커다란 운동장에 여러가지 다양한 수많은 자동차가 주차되어 있다고 가정하자. 이 자동차들을 그룹화할 때 추상화를 사용할 수 있다. 어떤 사람이 차의 배기량에 따라 차량을 구분하면 경차, 중형차, 대형차 등으로 구분할 수 있다.
따라서 구체적인 사물(자동차)들의 공통적인 특성(배기량)을 파악해서 이들을 하나의 개념(집합)으로 다루는 수단이 추상화가 된다.
추상화는 객체지향에 있어서 굉장히 중요한 개념중 하나이며 추상화가 없다면 우리는 각각의 개체를 구분해서 코드를 작성해야한다.
추상화 개념을 사용하지 않고 새로운 타입이 추가해야한다면 위의 코드처럼 switch case문을 사용하여 새로운 타입을 추가할 수 있다. 하지만 새로운 타입의 추가가 많아질수록 switch case문으로 모든것을 처리해야한다.
경차, 소형차, 중형차, 대형차의 추상화 개념은 Car를 매개변수로 사용한 다음 자동차의 오일을 변경하는 코드를 추가한다. 이 때는 구체적으로 어떤 종류의 차에 대해서하는지는 알 수 없다. 하지만 이제는 다른 타입의 차가 추가되더라도 코드를 변경할 필요가 없다.
참고문헌
- JAVA 객체지향 디자인 패턴 - 정인상, 채흥석 지음
'Programming > Basic' 카테고리의 다른 글
메모리 구조 (0) | 2022.07.03 |
---|---|
가비지 컬렉션(Garbage Collection, GC) (0) | 2022.07.02 |
[OS] 프로세스, 쓰레 (0) | 2022.07.01 |
SOLID 원칙 (1) (0) | 2021.05.11 |
객체지향의 원리 - 캡슐화 (0) | 2021.05.07 |
댓글