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
- COMMIT
- 기술블로그
- 커밋
- MVC #디자인패턴
- 웹 크롤링
- fastapi
- 개발자가 되기 위해 꼭 알아야 하는 IT용어
- 생성자 #자바 #기록남기기
- 컬럼수정
- 옵셔널태그
- 데이터 수집
- 스프링 입문
- 파이썬
- 작업 영역
- 에러포스팅
- SafeUpdate
- 개발공부
- 머신러닝 #학습내용정리
- GIT
- 단축키정리
- 그룹핑
- SQL
- 머신러닝 #회귀 #규제
- Numpy #TIL #넘파이 기초
- C언어 #문자열변환 #정수형변환
- 스프링부트
- 김영한 #SOLID #객체지향
- 크롬브라우저
- 공부내용정리
- 클래스 #아이디
Archives
- Today
- Total
데이터 분석가 몽구리
좋은 객체 지향 설계의 5가지 원칙(SOLID) 본문
SOLID
- 클린코드로 유명한 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리
- SRP: 단일 책임 원칙 (Single reponsibility principle)
- 한 클래스는 하나의 책임만 가져야 한다.
- 변경이 있을 경우 파급 효과가 적으면 단일 책임원칙을 잘 따르는 것
- OCP : 개방-폐쇄 원칙 (Open/closed principle)
- 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다
- 인터페이스를 구현한 새로운 클래스를 하나 만들어서 새로운 기능을 구현 (다형성)
- LSP 리스코프 치환 원칙 (Liskob substitution principle)
- 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다
- 다형성에서 하위 클래스는 인터페이스 규약을 다 지켜야 함
- ISP 인터페이스 분리 원칙(Interface segregation principle)
- 특정 클라이언트를 위한 인터페이스를 여러 개로 분리
- 자동차 인터페이스 -> 운전 인터페이스, 정비 인터페이스로 분리
- 사용자 클라이언트 -> 운전자 클라이언트, 정비사 클라이언트로 분리
- DIP 의존관계 역전원칙 (Dependency inversion principle)
- 프로그래머는 "추상화에 의존해야지, 구체화에 의존해서는 안된다"
- 구현 클래스에 의존하지 않고, 인터페이스에 의존해야함
다형성 만으로는 OCP, DIP를 지킬 수 없음
이상적으로는 모든 설계에 인터페이스를 부여하자
'Spring' 카테고리의 다른 글
회원 웹 기능 - 등록 (0) | 2024.01.05 |
---|---|
[Spring boot]회원 웹 기능 - 홈 화면 추가 (0) | 2024.01.02 |
[Spring]h2 DB, 웹 콘솔 접근하기 (0) | 2023.12.13 |