본문 바로가기

Java/객체지향 설계

객체지향의 특징 - 추상화

추상화

추상화의 주 목적은 불필요한 디테일 정보들을 사용자로부터 숨기는 것이다.

사용자는 복잡한 로직을 이해할 필요 없이 사용할 수 있다.

 

예를들어보자

 

커피가 먹고 싶어서 커피머신에서 스위치를 눌러서 커피를 만들었다고 쳐보자

여기서 커피머신으로 커피를 만든것은 좋은 추상화 예이다.

 

커피머신의 사용법만 알면 되고 커피머신이 어떻게 커피를 추출하는지는 알필요가 없다.

 

이걸 자바에서 똑같이 구현해보자

 

 

OOP 추상화

 

커피머신은 어떤 커피를 선택하냐에 따라서 어떻게 커피 빈을 그라인드 할지 결정을 한다

 

커피 셀렉션은 enum 형태로 각 종류의 커피가 들어있고

 

우린 단순히 커피머신을 만들때 커피빈과 어떤 커피를 만들지 생성자에서 만들기만 하면된다.

그럼 brewCoffee 를 통해 우리가 선택한 커피가 return 되게 된다.

 

그럼 좀 더 깊숙히 들어가보자

 

여기 좀더 커피머신을 강화햇다

생성자에서 설정들을 넣어주고..

 

각각의 커피를 추출할수있는 메소드를 만들어줄수있다.

여기서 추가로 커피를 늘릴수도있고,

실제 그라인드되고 추출되는 동작은 grinder 와 brewunit에 숨겨져있고

사용자는 brew 메소드를 호출하기만 하면된다.

 

 

여기서 중요한건 사용자는 위처럼 동작하는걸 알필요가 없다는것이다.

이게 바로 추상화다

 

추상화는 복잡한걸 작은 파트들로 나눠서 다루기 쉽게 만들어준다.

 

 

 

stackify.com/oops-concepts-in-java/

 

'Java > 객체지향 설계' 카테고리의 다른 글

객체지향 설계 - 단일 책임 원칙  (0) 2021.03.05
객체지향 특징 - 다형성  (0) 2021.03.05
객체지향 특징 - 상속  (0) 2021.03.05
객체지향 특징 - 캡슐화  (0) 2021.03.05
Java 란?  (0) 2019.11.11