추상화

hyuckhoon.ko·2020년 11월 21일
0

What I learned in first year

목록 보기
130/146



객체지향의 사실과 오해라는 책에서

"추상화의 목적은 불필요한 부분을 무시함으로써 현실에 존재하는 복잡성을 극복하는 것이다."라는 표현이 나온다.

또한, 저자는 리처드 파인만의 말을 다음과 같이 인용한다.
"현상은 복잡하다. 법칙은 단순하다. 버릴 게 무엇인지 알아내라."






구현하려는 클래스의 메시지들에 집중해보자. 공통점은 메시지 발송 요청이다.

공통점을 기준으로 묶고, 그 외 불필요한 차이점들은 잊어버리자.



좀 더 직접적인 예로,
간편결제, 카카오 결제, 토스 결제, 계좌 이체 등의 차이점을 매우 많다.

하지만, 결제를 한다는 관점에서 보면 공통점이 많다.

유저의 계좌정보를 verify해야 할 것이며, 계좌 잔액이 구매가격보다는 많아야 결제를 완료시킬 수 있다는 점이다. (물론 공통점들은 더 있을 것이다.)


결제 방식마다 클래스를 선언하여 객체가 고립되는 "섬"이 되게 하는 것은 좋은 설계가 아니다.

공통점을 추상화를 시킨다. --> Abstract

그리고 각각의 객체는 추상화 클래스를 상속받는 방식으로 진행하여 서로 협력하는 관계로 만든다.




추상화 시도는



0개의 댓글