Joonas' Note

Joonas' Note

SOLID 원칙 - Open/Closed Principle (OCP; 개방-폐쇄 원칙) 본문

개발

SOLID 원칙 - Open/Closed Principle (OCP; 개방-폐쇄 원칙)

2023. 5. 16. 00:44 joonas
    SOLID 원칙들은, 소프트웨어 작업에서 프로그래머가 소스 코드를 읽기 쉽고 확장하기 쉽게 될 때 까지 리팩토링하여
    코드 냄새를 없애기 위해 쓰기 좋은 지침이다.

    정의

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

    소프트웨어 요소는 확장에는 열려 있으나, 변경에는 단혀 있어야 하다.

    모듈 중 하나를 수정했는데, 그 모듈을 사용하는 모든 모듈의 코드를 수정하는 일이 있으면 안된다는 뜻이다.

    조금만 떠올려봐도 얼마나 끔찍한 일인 지 알 수 있다.

    확장에 대해 열려 있다.

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

    수정에 대해 닫혀 있다.

    모듈의 소스 코드나 바이너리 코드를 수정하지 않아도 모듈의 기능을 확장하거나 변경할 수 있다.
    그 모듈의 실행 가능한 바이너리 형태나 링크 가능한 라이브러리 (예를 들어, Windows의 DLL, 자바의 jar ...)를 건드릴 필요가 없다.

    추상화

    객체 지향 프로그래밍 언어에서는 "추상화"를 통해서 가능할 수 있다.

    추상화 클래스나 인터페이스를 만들어, 상위 클래스는 수정할 수 없도록 만들되 서브 클래스에서는 기능을 추가하여 확장할 수 있도록 만들기 때문이다.

    참고

     

    개방-폐쇄 원칙 - 위키백과, 우리 모두의 백과사전

    위키백과, 우리 모두의 백과사전. 개방-폐쇄 원칙(OCP, Open-Closed Principle)은 '소프트웨어 개체(클래스, 모듈, 함수 등등)는 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다'는 프

    ko.wikipedia.org

     

    SOLID (객체 지향 설계) - 위키백과, 우리 모두의 백과사전

    위키백과, 우리 모두의 백과사전. -->

    ko.wikipedia.org

     

    Comments