클린코드

SRP: 단일 책임 원칙

2023. 4. 12. 10:00
Single Responsibility principle : 단일 책임 원칙
Open Close Principle : 개방 폐쇄 원칙
Liscov Substitution Principle : 리스코프 치환 원칙
Interface Sergregation Principle: 인터페이스 분리 원칙
Dependency Inversion Principle : 의존성 역전 원칙

좋은 객체 지향 설계의 5가지 원칙 중 단일 책임 원칙(SRP)에 대해 알아보겠습니다.


Single Responsibility Principle : 단일 책임 원칙
하나의 클래스, 하나의 메소드는 하나의 책임만 가져야 한다.

현실에서 예제를 찾아보도록 하겠습니다.

 

회사에서 출품한 마우스 A, B 모델이 존재한다.

A 모델은 감도가 1이고, B 모델은 감도가 2로 설정되었다.

class Mouse{
	public String model;
    public setModel(String model){
    	this.model = model;
    }
    public void sensitivity(){
    	if(model.equalse("A"){
        	... //감도 1로 지정
		} else if(model.equalse("B"){
        	... //감도 2로 지정
		}
    }
}

Mouse 클래스에 감도의 값을 지정하는 sensitivity() 메서드를 구현하고 있습니다.

sensitivity() 메소드는 Mouse 클래스의 모델에 따라 감도 1, 2로 설정되고 있습니다.

하나의 메소드 하나의 책임만 가져야 하지만, 모델이 따라 감도 값을 설정하기 때문에 SRP 위배가 되었습니다.

 

abstract class Mouse {
	abstract void sensitivity();
}

class ModelA extends Mouse{
	
    @Override
    void sensitivity(){
    	... //감도 1 설정
    }
    
}

class ModelB extends Mouse{
	
    @Override
    void sensitivity(){
    	... //감도 2 설정
    }
    
}

SRP를 준수하며 Mouse 클래스를 추상 클래스로 생성하고 모델 A, 모델 B 각각 Mouse를 상속받아 각자의 감도를 설정하였습니다.

 

'클린코드' 카테고리의 다른 글

DPI: 의존관계 역전 원칙  (0) 2023.04.18
ISP: 인터페이스 분리 원칙  (0) 2023.04.17
LSP: 리스코프 치환 원칙  (0) 2023.04.15
OCP: 개방 - 폐쇄 원칙  (0) 2023.04.14
계층형 아키텍처  (0) 2023.04.11
'클린코드' 카테고리의 다른 글
  • ISP: 인터페이스 분리 원칙
  • LSP: 리스코프 치환 원칙
  • OCP: 개방 - 폐쇄 원칙
  • 계층형 아키텍처
RE.YEOL
RE.YEOL
RE.YEOL
RE.YEOL Blog
RE.YEOL
전체
오늘
어제
  • 분류 전체보기
    • Spring
    • Flutter
    • 클린코드
    • 마케팅?
      • GA4

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

최근 댓글

최근 글

hELLO · Designed By 정상우.
글쓰기 / 관리자
RE.YEOL
SRP: 단일 책임 원칙
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.