[Java] CQS: Command-Query Separation

yammmie·2024년 2월 4일

Java

목록 보기
6/9
post-thumbnail

CQS: Command-Query Separation

CommandQuery 분리 원칙


Command

  • 상태를 변경하는 메소드
  • 예를 들면 Setter 메소드
public void setId(String id) {
	this.id = id;
}

Query

  • 값을 리턴하는 메소드
  • 예를 들면 Getter 메소드
public String getId() {
	return id;
}

Command이면서 동시에 Query일 수 없다

  • 모든 메소드는 CommandQuery 두 가지로 구분하며, 둘 중 한 가지 기능만 실행해야 한다
  • 아래 예시와 같이 한 메소드에서 값을 변경하고, 리턴하면 안 된다
public String getId() {
	this.id = "abcd";
    return id;
}

예외

  • Stackpop 메소드
    - 가장 최근에 push된 값을 리턴하고(Query), Stack에서 제거함(Command)



참고

https://velog.io/@yena1025/CQS-Command-Query-Separation
https://velog.io/@stella317/Spring-CQSCommand-Query-Separation

0개의 댓글