Engineering Note

[OOP] OCP(개방 폐쇄 원칙) 본문

Computer Science/OOP & Design Pattern

[OOP] OCP(개방 폐쇄 원칙)

Software Engineer Kim 2025. 10. 17. 19:29

OCP(Open Closed Principle)

: 개방-폐쇄 원칙은 소프트웨어 구성요소(클래스, 모듈, 삼수 등)는 확장에는 개방적이어야 하고, 수정에는 폐쇄적이어야 한다는 원칙입니다. 즉, 기존의 코드를 변경하지 않고도 시스템의 기능을 확장할 수 있어야 합니다.

OCP를 적용하면, 기존 코드를 변경하지 않고도 새로운 기능을 추가할 수 있습니다. 이는 유지보수성과 재사용성을 향상시키는데 도움이 됩니다.

 

 

구현 방법

: OCP를 적용하기 위해선 다형성을 활용하는 것이 일반적입니다. 인터페이스나 추상 클래스를 사용하여 확장 가능한 부분을 정의하고, 구체적인 구현은 별도의 클래스에서 제공하는 방식입니다.

 

public interface PaymentMethod{
 void pay(amount);
}

public class CreditCart implements PaymentsMethod{
 public void pay(amount){
  //신용카드 결제 로직 구현
 }
}

public class PayPal implements PaymentMethod {
 public void pay(amount){
  //PayPal 결제 로직 구현
 }
}

 

위 코드는 결제 방식을 인터페이스로 정의하고, 각 결제 방식을 구현한 클래스를 별도로 제공하는 방식으로 OCP 원칙을 적용한 예시입니다. 이런 방식으로 구현하면 새로운 결제 방식이 추가되더라도 기존 코드의 변경 없이 결제 방식 클래스를 추가하기만 하면 됩니다.

Comments