Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Graph
- buffer
- 알기쉬운 알고리즘
- Serialization
- stream
- s
- 윤성우 열혈자료구조
- 윤성우의 열혈 자료구조
- C 언어 코딩 도장
- 혼자 공부하는 C언어
- 이스케이프 문자
- R
- Algorithm
- coding test
- insertion sort
- JSON
- 메모리구조
- C programming
- list 컬렉션
- Stack
- datastructure
- Selection Sorting
- 이것이 자바다
Archives
- Today
- Total
Engineering Note
[OOP] OCP(개방 폐쇄 원칙) 본문
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 원칙을 적용한 예시입니다. 이런 방식으로 구현하면 새로운 결제 방식이 추가되더라도 기존 코드의 변경 없이 결제 방식 클래스를 추가하기만 하면 됩니다.
'Computer Science > OOP & Design Pattern' 카테고리의 다른 글
[OOP] DIP(의존성 역전 원칙) (0) | 2025.10.17 |
---|---|
[Design Pattern] Strategy Pattern(전략 패턴) (1) | 2025.07.14 |
[OOP] OCP (Open-Closed Principle) 개념 정리 (0) | 2025.07.07 |
[OOP] 역할, 책임, 협력 그리고 캡슐화, 상속, 추상화 (0) | 2025.06.19 |
Object Oriented Programming(객체 지향 프로그래밍) (0) | 2022.07.09 |
Comments