[Java] OCP - 개방 폐쇄 원칙

상트리버·2022년 12월 19일
0

Java

목록 보기
4/10

OCP (Open-Closed Principle)

"소프트 웨어 엔티티(클래스, 모듈, 함수 등)는 확장에 대해서는 열려 있어야 하지만 변경에 대해서는 닫혀 있어야 한다." - 로버트 C. 마틴

" 자신의 확장에는 열려 있고, 주변의 변화에 대해서는 닫혀 있어야 한다."

"확장에는 개방되고 수정에는 닫힌다"
기존 코드는 변경하지 않고 기능을 추가 하는 것을 의미한다!

  • 개방-폐쇄 원칙은 두가지의 개념이 아니라 동전의 양면처럼, 하나의 개념이 개방과 폐쇄를 가지고 있다.

    프로그램을 확장할 때에는(열림) 최소한의 수정만 허용해야 한다(닫힘) 이 OCP의 전부 이다.
    기능 추가나 개선을 할때에 프로그램을 뜯어고치지 말라는 이야기다.

OCP 나쁜 예

.

차가 바뀔 때마다 클래스를 추가하고 drive를 새로 만들어야 한다.


OCP 좋은 예

차가 바뀔 때마다 클래스를 만들고, myCar만 바꿔주면 된다.
코드 돌려 막기가 된다는건가?

OCP의 장점

  • 유연성, 사용성, 유지보수성을 얻을 수 있다.
  • 존의 코드를 변경하지 않으면서 기능을 추가할 수 있다.

0개의 댓글