티스토리 뷰

728x90
반응형

개방-폐쇄 원칙 (Open-Closed Principle, OCP)

  1. 개방-폐쇄 원칙 ?

  2. 개방-폐쇄 원칙 예제

  3. References

개방-폐쇄 원칙 ?

소프트웨어 개체(클래스, 모듈, 함수 등등)는 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다.

위키백과에 간단명료하게 정리되어있어 인용을 하자면,

확장에 대해 열려 있다.

이것은 모듈의 동작을 확장할 수 있다는 것을 의미한다.

애플리케이션의 요구 사항이 변경될 때, 이 변경에 맞게 새로운 동작을 추가해 모듈을 확장할 수 있다.

수정에 대해 닫혀 있다.

모듈의 소스 코드나 바이너리 코드를 수정하지 않아도 모듈의 기능을 확장하거나 변경할 수 있다.

개인적으로 확장과 수정을 따로 생각하지 않는 것이 이해가 잘 되었다.

확장성을 고려하여 설계함으로써 수정사항이 발생하였을 시 이미 설계된 모듈에서의 수정을 적게 하도록 하여라 라는 뜻으로 이해했다.


위 설계를 보면 PostgreSQL, Oracle, Sybase Database에 모두 확장적(개방)이면서 자바어플리케이션입장에서 수정은 폐쇄적인 것 임을 알아야 한다.

개방-폐쇄 원칙 예제

여러 예제들이 구글링으로 나오지만, 수정에 대해 닫혀있다 에 대해 개인적으로 만족스러운 설명이나 예제가 부족해 보여서 찾던 중

좋은 예제를 발견하여 링크 남긴다.

[참고 : https://shas15.github.io/solid-o/ ]

References

https://shas15.github.io/solid-o/

https://ko.wikipedia.org/wiki/%EA%B0%9C%EB%B0%A9-%ED%8F%90%EC%87%84_%EC%9B%90%EC%B9%99

https://limkydev.tistory.com/77


반응형
공지사항
최근에 올라온 글