본문 바로가기

Java/객체지향 설계

객체지향 설계 - 개방 폐쇄 원칙

 

엔티티는 확장을 위해 열려 있어야 하지만 수정을 위해 닫혀 있어야 한다.

 

기존 코드를 변경하지 않고도 새 기능을 추가 할 수있도록 코드를 작성 하라는 메시지다.

클래스 중 하나를 변경하면 모든 종속 클래스가 변경되야 하는 상황을 방지 할 수 있다.

 

인터페이스를 사용해 사용하는 코드를 변경하지 않고 

쉽게 대체 할 수 있게 구현을 허용한다.

 

수정을 하지 않고도 계속적인 코드 확장이 가능해진다.

 

 

예제를 보면서 확인해보자

 

 

여기 일반적인 커피머신이 있다.

brewCoffee 로 커피를 추출하는 메소드를 가지고 있다.

 

 

이 커피 앱에서 자동으로 커피머신에서 커피를 추출할 수 있게 구현을 했다.

 

근데 만약 여기서 일반적인 커피 머신이 아니라

새로운 기능들이 추가된 새로운 커피머신을 사용해야 한다면?

 

이제 여기서 개방 폐쇄 원칙에 따라서

커피머신을 조정 할 수 있게 구현 할 수 있다.

 

 

 

커피 머신 인터페이스를 만들고

 

새로운 커피머신에 implements 시킨다.

 

현재 인터페이스 상속 상태

 

이제 커피 앱 생성자에서 

커피머신을 선택할 수 있게 만들어 주면된다.

 

 

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

객체지향 설계 - 단일 책임 원칙  (0) 2021.03.05
객체지향 특징 - 다형성  (0) 2021.03.05
객체지향 특징 - 상속  (0) 2021.03.05
객체지향 특징 - 캡슐화  (0) 2021.03.05
객체지향의 특징 - 추상화  (0) 2021.03.03