일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- queue
- css
- 알고리즘
- 변수
- OOP
- TIL
- winston
- bean
- 인접리스트
- LifeCycle
- 탐욕법
- javascript
- 코딩테스트
- html
- 인접행렬
- nestjs
- Interceptor
- REST API
- 자료구조
- 프로그래머스
- JWT
- typescript
- Deep Dive
- logger
- Spring
- GraphQL
- java
- MySQL
- dfs
- node.js
- Today
- Total
목록ocp (2)
처음부터 차근차근
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/24RLz/btsDhVfaDzb/FjluKwuk52ku6jFbam3Jr0/img.png)
Java, Spring은 객체 지향 프로그래밍을 사용하는 언어와 프레임워크로 유명합니다. 하지만 프로젝트를 작성하다보면, 객체 지향의 원리들을 적용하지 못하고 코드를 작성할 때도 많습니다. 오늘은 이 부분을 한번 적용해보도록 하겠습니다. 객체 지향을 적용해보자 간단한 예시로 주문 서비스에 할인 정책이 있다고 가정해보겠습니다. 정액 할인 정책 : 1000원 할인 정률 할인 정책 : 구매금액의 10% 할인 초기 개발할 당시에는 정책이 정해지지 않아, interface만 작성했다고 가정하였습니다. OrderService의 구현 객체에서 할인 정책을 선택할 것인데, 둘 중 하나로 들어갈 것입니다. 초기에는 FixDiscountPolicy(정률 정책)을 한다고 하였으나 급하게 RateDiscountPolicy로 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/2WAJC/btsCRgePQgY/mwK2og6SaYtmWXu6C8nPkK/img.png)
OCP 좋은 객체 지향 설계 원칙 중 하나로 OCP 원칙이 존재합니다. 개방 폐쇄의 원칙이란, 기존의 코드는 변경하지 않으면서, 기능을 추가할 수 있도록 설계가 되어야 한다는 의미입니다. Open for extension: 새로운 기능의 추가나 변경 사항이 생겼을 때, 기존 코드는 확장할 수 있어야 한다. Closed for modification: 기존의 코드는 수정되지 않아야 한다. 즉, 확장(새로운 기능이 추가)에는 열려있고, 변경에는 닫혀 있다는 뜻입니다. 확장에 열려있다 모듈의 확장성을 보장하는 것을 의미한다. 새로운 변경 사항이 발생했을 때 유연하게 코드를 추가함으로써 애플리케이션의 기능을 큰 힘을 들이지 않고 확장할 수 있다. 변경에 닫혀있다 객체를 직접적으로 수정하는건 제한해야 한다는 것을..