[SOLID] 개방-폐쇄 원칙

이재훈·2023년 8월 15일
0

SOLID

목록 보기
2/5

객체지향의 핵심원리와 원칙들

OCP, 개방 폐쇄 원칙

OCP : Open Closed Principle
소프트웨어는 확장에는 열려있고 변경에는 닫혀 있어야 한다.

인터페이스를 통한 개방 폐쇄 원칙 지키기


서비스와 레포지토리들 중간에 Repository(interface)를 추가하면서 고수준 컴포넌트(Service)가 저수준 컴포넌트(Database Repository, File Repository)에 의존하지 않도록 구성되어 있습니다.

서비스는 Repository(interface)에 의존하고 있고, Repository(interfae)는 구현체가 두개가 있습니다. 이것은 개방 폐쇄 원칙이 지켜진 코드입니다. 만약에 여기서 Repository 가 하나 더 늘어난다면 어떻게 될까요?

클라이언트가 인터페이스에 의존하고 있기 때문에 확장이 클라이언트에 변경 없이 가능합니다. 이것이 확장에 열려있다.를 의미합니다.

ArrayList Repository가 없어지는 변경에도 서비스는 영향을 받지 않습니다.

인터페이스 없이 지킬 수 있는 개방 폐쇄 원칙

Enum, 디자인 패턴, 이벤트 기반 프로그래밍을 사용하여 개방 폐쇄 원칙을 지킬 수 있습니다.

개방 폐쇄 원칙이 지켜진 코드가 가진 장점

개방 폐쇄 원칙을 지키는 코드는 클라이언트 코드가 추상화에 의존하고 있기 때문에 확장될 때와 변경될 때 모두 다른 코드에 영향을 주지않게 만듭니다.

결론

개방 폐쇄 원칙을 잘 지켜서 코드를 작성하면 변경사항에 대해 유연하고 빠르게 대처할 수 있다.


해당 게시글은 프로그래머스 스쿨 강의
"실무 자바 개발을 위한 OOP와 핵심 디자인 패턴(푸)"
를 정리한 내용입니다. 쉽게 잘 설명해주시니 여러분도 강의를 듣는 것을 추천드립니다.

profile
부족함을 인정하고 노력하자

0개의 댓글