※ 추상화
: 사물들의 공통된 특징, 즉 추상적(보편적) 특징을 파악해 해당 특성으로 각각의 사물을 하나의 집합으로 파악하는 것
ex) 갤럭시 s8, g6, v20이 있다고 하면 이들은 스마트폰이라는 개념을 사용해 추상화할 수 있다. 만약 스마트폰 종류마다 배터리 충전 방식이 다르다고 하면 밑에 있는 소스코드와 같을 수 있다.
switch(스마트폰 종류) case 갤럭시 s8: //배터리 충전 방식 기술 case g6: //배터리 충전 방식 기술 end
여기서 새로운 종류의 스마트폰 v20을 추가하라고 하면 아래의 소스코드와 같이 case 문을 더 추가해야 한다.
switch (스마트폰 종류) case 갤럭시 s8: //배터리 충전 방식 기술 case g6: //배터리 충전 방식 기술 case v20: //배터리 충전 방식 기술 end
하지만 추상화 개념인 스마트폰을 이요할 경우 코드는 다음과 같을 것이다.
void chargeBattery(SmartPhone sp){ sp.chargeBattery(); }
위와 같이 다형성의 원리를 이용해 코드를 작성하면 구체적인 스마트폰의 종류에 대한 부분을 찾을 수 없다. 따라서 특정 스마트폰이 추가되어도 코드의 수정이 필요없다.
=> 각 사물의 구체적인 개념에 의존하지 말고 추상적 개념에 의존해야 설계를 유연하게 변경 가능하다.
'자바 > 기본' 카테고리의 다른 글
이클립스 단축키, 자바 기타 (0) | 2017.06.29 |
---|---|
객체지향 원리(4) - 다형성, 피터 코드의 상속 규칙 (0) | 2017.06.29 |
객체지향 원리(3) - 일반화(상속) (0) | 2017.06.29 |
객체지향 원리(2) - 캡슐화 (0) | 2017.06.29 |
SOLID 원칙 - 예제 (0) | 2017.06.15 |