// ์ปค๋งจ๋ ๋ชจ๋ธ
class Command {
private String data;
public Command(String data) {
this.data = data;
}
public String getData() {
return data;
}
}
// ์ฟผ๋ฆฌ ๋ชจ๋ธ
class Query {
// ์กฐํ์ ํ์ํ ํ๋ ๋ฐ ๋ฉ์๋๋ค...
}
// ๋ช
๋ น ํธ๋ค๋ฌ
class CommandHandler {
public void handleCommand(Command command) {
//๋ช
๋ น์ ์ฒ๋ฆฌํ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๋ ๋ก์ง
}
}
// ์กฐํ ํธ๋ค๋ฌ
class QueryHandler {
public Query handleQuery() {
// ์กฐํ๋ฅผ ์ฒ๋ฆฌํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ๋ก์ง
return new Query()
}
}
// CQRS ์๋น์ค
class CqrsService {
private CommandHandler commandHandler;
private QueryHandler queryHandler;
public CqrsService(CommandHandler commandHandler, QueryHandler queryHandler) {
this.commandHandler = commandHandler;
this.queryHandler = queryHandler;
}
public void sendCommand(Command command) {
commandHandler.handleCommand(command);
}
public Query sendQuery() {
return queryHandler.handleQuery();
}
}
// ํด๋ผ์ด์ธํธ ์ฝ๋
public class CqrsExample {
public static void main(String[] args) {
CommandHandler commandHandler = new CommandHandler();
QueryHandler queryHandler = new QueryHandler();
CqrsService cqrsService = new CqrsService(commandHandler, queryHandler);
//๋ช
๋ น ๋ณด๋ด๊ธฐ
Command command = new Command("Update data");
cqrsService.sendCommand(command);
//์กฐํ ๋ณด๋ด๊ธฐ
Query query = cqrsService.sendQuery();
// ์กฐํ ๊ฒฐ๊ณผ๋ฅผ ์ฌ์ฉํ๋ ๋ก์ง...
}
}