객체 지향 프로그래밍 입문(최범균) 2 - 다형성, 추상화, 조립
2022.05.08
다형성이란, 여러 모형으로 변화하는 것이다. 하나의 객체가 여러 타입을 갖는 것이다.
추상화란, 특정한 성질(interface) 또는 공통 성질(abstract, 일반화)을 뽑아내는 과정이다.
추상화를 통해 객체는 다형적인 모형을 변화 가능하다
<추상화 시점>
추상화는 의존 대상이 변경하는 시점에 추가한다. 실제 변경 및 확장이 일어날 때 공통점을 파악하고 뽑아낸다.
<추상화 예시>
클라우드 파일 관리 기능이 있고, 대상 클라우드의 종류가 n가지일 경우.
클라우드 종류에 따라 if문으로 분기하는 로직이 아닌 공통기능인 클라우드 파일 시스템을 추상화한다.
클라우드 파일 시스템에서는 파일 목록과 관련된 CRUD 기능을 추상화하고,
클라우드 파일에서는 개별 파일의 CRUD 기능을 추상화한다.
특정 클라우드 구현체에서는 추상 클래스를 상속받아서 기능을 재정의한다.
추상화가 진행되면, 구현 클래스의 변경은 있더라도(조립) 서비스 로직은 바뀌지 않는다.
<상속보다는 조립>
상속을 통해서 재사용을 하게 된다면,
1. 상위 클래스의 변경이 어렵고
2. 기능과 확장이 필요한 만큼 클래스가 증가하고
3. 상속을 오용하게 된다.(비슷한 메서드 착오)
상속은 하위타입일 경우에 진행하고, 보통의 경우 객체를 참조하는 방식으로 진행할 것.
댓글을 작성해보세요.