객체지향 (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 이 지향하는 각 역할별 모듈화와 연관이 있지 않나 생각해본다.

 

 

참고도서 : 스프링 입문을 위한 자바 객체 지향의 원리와 이해 (위키북스)