객체지향 (OOP)/객체 지향 설계 5원칙
[SRP] 객체지향 설계 5 원칙 (1)
고인돌개발자
2021. 5. 13. 22:50
학습목표 : SRP[Single responsibility principle] 단일 책임 원칙 을 이해하고, 예제로 설명할 수 있다.
SRP[Single responsibility principle] 단일 책임 원칙
- 한 클래스는 하나의 책임만 가져야 한다.
- 어떤 클래스를 변경해야 하는 이유는 오직 하나뿐이어야 한다" - 로버트 C. 마틴
1. 그림 설명
예제) 못된 예제
public class NoSrp남자 {
String myName ="남자";
void 효도하기() {
System.out.println("엄마에게 효도");
}
void 기념일챙기기() {
System.out.println("아내에게 기념일 챙기기");
}
void 용돈주기() {
System.out.println("아이들에게 용돈주기");
}
void 운동하기() {
System.out.println("친구와 운동하기");
}
}
예제) 잘된 예제
public class Srp남자 {
}
class 남자{
String myName ="남자";
}
class Son extends 남자 {
void 효도하기() {
System.out.println("엄마에게 효도");
}
}
class Husband extends 남자{
void 기념일챙기기() {
System.out.println("아내에게 기념일 챙기기");
}
}
class Daddy extends 남자{
void 용돈주기() {
System.out.println("아이들에게 용돈주기");
}
}
class Friend extends 남자{
void 운동하기() {
System.out.println("친구와 운동하기");
}
}
덧붙이는 말.
SOLID 개념은 객체지향 디자인 패턴의 뼈대이고,
스프링 프레임워크의 근간이 된다고 한다.
SRP(단일 책임 원칙)도 Spring 이 지향하는 각 역할별 모듈화와 연관이 있지 않나 생각해본다.
참고도서 : 스프링 입문을 위한 자바 객체 지향의 원리와 이해 (위키북스)