티스토리 뷰
1.단일 책임 원칙 (SRP - Single Responsibility Principle)
Object가 있을때 (class 설계도) -> 하나의 책임만 가진다.
ex) 더하기라는 클래스가 있을때 여기에 다른 연산을 추가한다면 이것은 단일 책임 원칙을 위반하는것.
SRP는 지키도록 노력하는것이지 완벽하게 지킬 수 있는것은 아니다.
ex) 클래스가 1가지 책임만 갖고는 만들 수 없을때 2가지 책임을 갖게될텐데-> srp위반 -> 최악의코드?!(최악코드X)
이렇게 하면 좋겠다는것이지 무조건은 아니다 최대한 단일 책임 원칙을 지키면서 프로그래밍 하겠다는 마음가짐이 중요
SRP를 따를때의 이점
- 쉬운 테스트 : 책임이 하나인 클래스는 테스트 케이스가 줄어들기 때문에 테스트가 쉽다
- 낮은 결합 : 단일 클래스의 기능이 적어져 종속성이 줄어든다.
- 쉬운 검색 : 작고 잘 조직된 클래스는 모놀리식 클래스보다 검색하기 쉽다
- 구현하기 쉬움 : 하나의 책임만 가지고 있기 때문에 구현및 이해가 쉽다
2.개방 폐쇄의 원칙 (OCP - Open Close Principle)
code -> 개방에는 열려있고 수정에는 폐쇄적
ex) A.class를 만들어서 테스트후 서비스중에 보완할 점이 생기게되면
A클래스를 고치는것이 아닌 B클래스를 만들어서 기능보완을 해서 실행하는 주체를 바꿔준다.
-> 이런 경우에는 추상클래스를 상속받아서 A.클래스가 구현되어야하고 B클래스도 마찬가지(디자인 패턴을 알아야한다)
3.의존성 역전 원칙 (DIP - Dpendencey Inversion Principle)
구체적인것의 의존하지않고 추상적인것에 의존하는것

4.인터페이스 분리 원칙 (ISP - Interface Segregation Principle)
인터페이스 분리 원칙은 클라이언트가 자신이 이용하지 않는 메서드에 의존하지않아야 한다.
ISP는 인터페이스가 응집력 측면에서 작게 분할하여 클래스가 필요한 작업만 실행하도록 하는것을 목표로 함
ISP는 SRP 단일 책임 원칙과 비슷하지만 ISP는 인터페이스를 SRP는 클래스와 연관되어있다.
5.리스코프 치환 원칙 (LSP - Liskov Substitution Principle)
LSP는 자식 클래스가 오류를 일으키지 않고 부모 클래스를 대신할 수 있도록 하는 것을 목표로 한다.
https://www.youtube.com/watch?v=0zgnMInEx2s&list=PL93mKxaRDidEhEcufGexy99nAWGesLBch&index=2
'개발 > TIL' 카테고리의 다른 글
| intellij git 파일 비활성화 설정 (0) | 2023.05.18 |
|---|---|
| pom.xml profiles에 따라 다른 배포 환경 설정 (0) | 2023.05.09 |
| 10.8 dto, builder (0) | 2022.10.08 |
| 10.5 Entity (0) | 2022.10.05 |
| 10.4 HTTP, JPA (0) | 2022.10.04 |
- Total
- Today
- Yesterday
- ssl
- 알고리즘
- badrequest
- Spring
- IOC
- JPQL
- method
- 코드해석
- EntitiyManagerFactory
- .jks
- EC2
- JWT토큰
- JPA
- POI
- java
- wil
- backoffice
- joinfetch
- DTO
- 항해99
- python
- 협업
- ajax
- instance
- 풀텍스트
- querydsl
- this
- 환경세팅
- 김영한
- DI
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |