일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 객체지향
- C# MDB Handle
- 디자인 패턴
- MVC
- GDI+
- C# 파일 암/복호화
- 경기도 버스
- Json.NET
- 공공 데이터 포털
- TDD
- MDB Select
- WPF
- solid
- Winform
- delegate
- NUnit
- DrawRectangle
- MDB Connect
- eventargs
- sqlite3
- c#
- 버스 API
- Excel Cell Format
- 경기도 버스정보시스템
- C# MDB
- DrawEllipse
- 시
- Cell Border Style
- JSON
- eventhandler
Archives
- Today
- Total
White Whale Studio
[SOLID] 개방 폐쇄 원칙 / OCP : Open Close Principle 본문
IT Engineering/객체지향&디자인 패턴
[SOLID] 개방 폐쇄 원칙 / OCP : Open Close Principle
glorymind 2016. 6. 24. 11:08반응형
SOLID 원칙 중 2번째인 개방 폐쇄 원칙입니다. OCP : Open Closed Principle
이 원칙은 다음과 같습니다.
- 기능을 변경하거나 확장은 할 수 있으면서
- 그 기능을 사용하는 코드는 수정하지 않는다.
첨엔 이게 뭔 소린가 싶습니다.
풀이를 해보면
Entity(클래스, 메서드, 모듈 등)는 Interface와 같은 추상화 클래스에 대해 개방 되어 있어야 하지만
변경에는 폐쇄되어 있어야 한다는 말입니다.
즉, Interface를 통해 기능을 변경하거나 확장을 하는 것은 가능하나, 외부에서 참조하는 코드는 수정하지 않는다는 것입니다.
아래의 그림에서 보시면 Interface를참조하는 Plus, Minus의 메서드가 있는데, 이러한 메서드에 추가적으로 곱하기나 나누기가 기능이 추가가 되야 할 수도 있을 겁니다. 이러한 경우에 추가될 기능인 곱하기, 나누기와 같은 기능의 확장은 가능한 것이고, 이러한 기능이 확장이 되었다고 해서 해당 메서드를 참조하는 CalcMethod가 변경이 되어서는 안된다는 의미입니다.
보통 이러한 개방 폐쇄 원칙을 깨뜨리는 코드는
비슷비슷한 if - else 블록이 존재한다고 합니다.
반응형
'IT Engineering > 객체지향&디자인 패턴' 카테고리의 다른 글
Singleton Pattern / 싱글톤 패턴 (0) | 2016.06.24 |
---|---|
[SOLID] 단일책임원칙 / SRP : Single Responsibility Priciple (0) | 2016.06.24 |
Facade Pattern (파사드 패턴) (0) | 2016.06.17 |
Decorator Pattern (데코레이터 패턴) (0) | 2016.06.17 |
[객체지향 개발] 캡슐화(Capsulation) (0) | 2016.06.16 |
Comments