티스토리 뷰
728x90
1. 확장에는 열려있고 수정에는 닫혀 있어라
2. 코드 수정을 하지 않는 방향으로 작성해야 한다.
3. 항상 기능 확장 가능성을 고려하여 설계해야 한다.
4. 확장을 하려면 추상 레이어가 필요하다.
5. 이 원리를 가장 잘 설명해 주는 패턴이 strategy 패턴이다. 아래는 Head First Degisn pattern에 나오는 건데 인터넷에서 찾아서 붙였다.
6. Duck을 확장하기 위해서 FlyBehavior 인터페이스를 사이에 두고 나는 방법에 대한 클래스를 구현하고 있다.
6-1 Duck은 FlyBehavior의 fly()를 호출하면 실제 구현체에 따라서 다른 기능을 사용할 수 있게 된다.
728x90
'Spring > Spring Basic' 카테고리의 다른 글
Spring Basic : 외부 설정 파일에서 읽어오기 (정리) (0) | 2020.07.24 |
---|---|
Spring Basic : Interface Segregation 원칙 (0) | 2020.07.21 |
Spring Basic : Spring Bean LifeCycle (0) | 2020.07.21 |
Spring Basic : Dependency Injection @Primary, @Qualifier (0) | 2020.07.21 |
Spring Basic : SOLID 원칙 (0) | 2020.07.20 |
댓글
250x250
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
- 도커 개발환경 참고
- AWS ARN 구조
- Immuability에 관한 설명
- 자바스크립트 멀티 비동기 함수 호출 참고
- WSDL 참고
- SOAP 컨슈머 참고
- MySql dump 사용법
- AWS Lambda with Addon
- NFC 드라이버 linux 설치
- electron IPC
- mifare classic 강의
- go module 관련 상세한 정보
- C 메모리 찍어보기
- C++ Addon 마이그레이션
- JAX WS Header 관련 stackoverflow
- SOAP Custom Header 설정 참고
- SOAP Custom Header
- SOAP BindingProvider
- dispatcher 사용하여 설정
- vagrant kvm으로 사용하기
- git fork, pull request to the …
- vagrant libvirt bridge network
- python, js의 async, await의 차이
- go JSON struct 생성
- Netflix Kinesis 활용 분석
- docker credential problem
- private subnet에서 outbound IP 확…
- 안드로이드 coroutine
- kotlin with, apply, also 등
- 안드로이드 초기로딩이 안되는 경우
- navigation 데이터 보내기
- 레이스 컨디션 navController
- raylib