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
- Class Loader
- 의존성 역전 원칙
- Native Method Stack
- pc register
- Runtime data Area
- Spring
- Java
- 객체지향
- Stack
- 자바
- Single Responsibillity Principle
- 스택메모리
- JVM
- Spring SOLID
- Heap
- Execution Engine
- CS
- 개방-폐쇄 원칙
- Open Closed Principle
- 개방폐쇄원칙
- 자바 heap
- 실행 엔진
- 단일 책임 원칙
- Data Structure
- stack메모리
- 객체지향 설계 5원칙
- 스택
- solid
- 자료구조
- 단일책임원칙
Archives
- Today
- Total
Juuunew 살아남기
[Spring] 객체지향 설계원칙 (SOLID) - 단일 책임 원칙 SRP 본문
SOLID 원칙은 클린 코드의 저자 로버트 마틴이 정리한 객체지향 설계의 다섯 가지 원칙으로
모듈화, 캡슐화, 확장 용이성, 구성 용이한 컴포넌트 등을 고려한 소프트웨어의 구축을 위한 설계이다.
- SRP (Single Responsibility Principle) : 단일 책임 원칙
- OCP (Open Closed Principle) : 개방-폐쇄 원칙
- LSP (Liskov Substitution Principle) : 리스코프 치환 원칙
- ISP (Interface Segregation Principle) : 인터페이스 분리 원칙
- DIP (Dependency Inversion Principle) : 의존 역전 원칙
의 앞글자들을 따와 SOLID 원칙이라 부른다.
단일 책임 원칙 - SRP
- 소프트웨어 설계 시 하나의 클래스는 하나의 책임만 가져야 한다.
- 변경이 있을 때 파급효과가 적으면 단일 책임 원칙을 잘 따른 것
- 응집도는 높고 결합도는 낮은 프로그램
- 책임이 많아지면 클래스 내부의 함수끼리 결합이 강해질 가능성이 높아진다. -> 유지보수 비용 증가
SRP 적용 전
public class ServiceCenter {
public void laptopRepair();
public void smartPhoneRepair();
}
현재는 하나의 서비스센터에서 노트북 A/S와 스마트폰 A/S를 책임지고 있다.
하지만 전문성을 위해 서비스센터를 세분화하려 한다.
SRP 적용 후
public class LaptopServiceCenter {
public void laptopRepair();
}
public class SmartPhoneServiceCenter {
public void smartPhoneRepair();
}
서비스센터에서 책임지던 노트북 A/S와 스마트폰 A/S를 각각의 노트북 서비스센터와 스마트폰 서비스센터로 분리하였다.
서비스센터 자체를 분리하여도 되고, 하나의 서비스센터 내에 한 창구에서 노트북, 스마트폰 A/S를 진행하던 것을 노트북 수리 창구와 스마트폰 수리 창구로 나누어주어도 된다.
💡 공부 중 정리하는 내용이므로 부족한 부분이 있을 수 있습니다.
💡 참고자료
'Framework > Spring' 카테고리의 다른 글
[Spring] 스프링 컨테이너, 제어의 역전(IoC), 의존관계주입(DI) (0) | 2022.12.23 |
---|---|
[Spring] 객체지향 설계원칙 (SOLID) - 의존성 역전 원칙 DIP (1) | 2022.12.21 |
[Spring] 객체지향 설계원칙 (SOLID) - 인터페이스 분리 원칙 ISP (0) | 2022.12.19 |
[Spring] 객체지향 설계원칙 (SOLID) - 리스코프 치환 원칙 LSP (0) | 2022.12.11 |
[Spring] 객체지향 설계원칙 (SOLID) - 개방-폐쇄 원칙 OCP (0) | 2022.12.08 |