CQRS命令查詢職責分離
查詢
boolean isExist= File.exist(File);
命令
File.write("寫檔案");

目的
Table
Column1
Column 2
Table
Column1
Column 2
Column 3
Column 4
Column 5
Column 6
Last updated
查詢
boolean isExist= File.exist(File);
命令
File.write("寫檔案");

Last updated
//命令
interface ICommand{
}//命令處理
public interface ICommandHandler<T extends ICommand, Result> {
Result handler(T cmd);
}//學生電話變更命令
public class StudentChangeTelCommand implements ICommand {
private String studentId;// 學號
private String tel;// 電話
public StudentChangeTelCommand(String studentId, String tel) {
super();
this.studentId = studentId;
this.tel = tel;
}
//變更學生電話命令執行
public class StudentChangeTelHandler implements ICommandHandler<StudentChangeTelCommand, Integer> {
StudentRepository repository;
public StudentChangeTelHandler(StudentRepository repository) {
super();
this.repository = repository;
}
@Override
public Integer handler(StudentChangeTelCommand cmd) {
return repository.changeTel(cmd.getStudentId(), cmd.getTel());
}
}
public class ChangeTelUseCaseTest {
StudentRepository studentRepository = new StudentRepository();
StudentChangeTelHandler StudentChangeTelHandler = new StudentChangeTelHandler(studentRepository);
@Test
public void update_tel_withExistStudent_return_1() {
ChangeTelUseCaseDTO dto = new ChangeTelUseCaseDTO();
dto.setStudentId("S00001");
dto.setTel("0911111111");
ChangeTelUseCase changeTelUseCase = new ChangeTelUseCase(StudentChangeTelHandler);
ChangeTelUseCaseOutput output = changeTelUseCase.command(dto);
assertTrue(output.getUpdateSize() > 0);
}
}