---
# System prepended metadata

title: Untitled

---

# OCP(Open Closed Principle)

### 역사적 배경 + 유래
- 걔방 폐쇄 원칙 OCP (Open-closed Principle)은 버트란드 마이어 (Bertrand Meyer)의 'Object Oriented Software Construction'(1988)이라는 책에서 유래되었다.
- 이 책에서 소프트웨어 개발에서 객체지향 원칙을 강조하고, 이 중 하나로 OCP를 소개했습니다.

### 요약 설명
> 기존의 코드를 변경하지 않으면서 기능을 추가할 수 있도록 설계가 되어야 한다.

### 목적과 필요성
코드의 유연성과 재사용성을 높이는 것
새로운 요구 사항이나 기능 추가가 발생하더라도 기존의 코드를 변경하지 않고도 이를 수용할 수 있도록 설계함으로써 소프트웨어의 유지 보수성을 향상시킨다


### 예제 코드 ( 또는 다이어그램 )        
```java
public interface Drawable {
    void draw();
}

public class Rectangle implements Drawable {
    @Override
    public void draw() {
        // 사각형을 그리는 코드
    }
}

public class Circle implements Drawable {
    @Override
    public void draw() {
        // 원을 그리는 코드
    }
}
```

