為何要區分 Student 跟 AddStudentRequest 兩個不同的 model? 裡面的屬性不是一樣的嗎?

class Student {
	String name;
	String address;
	...
}

class AddStudentRequest {
	String name;
	String address;
	...
}

Separation of concern

Domain model 抽象的是商業邏輯

Data model 抽象的是 API 對外資料規範,有時甚至必須處理 API 資料相容性的問題

人跟猴子都長得很像,有人說你長得像猴子嗎?

Screen Shot 2022-03-26 at 3.20.33 PM.png

Reference

FluentValidation Fundamentals