1. public class SnackMachineRepository extends Repository {
    2. public List<SnackMachine> getAll() {
    3. /* 返回初始化的领域模型列表 */
    4. }
    5. public List<SnackMachine> getAllWithoutSlots() {
    6. /* 返回的领域模型中不含Slot */
    7. }
    8. public List<SnackMachine> getOnlyIds() {
    9. /* 返回的领域模型只包含id */
    10. }
    11. }

    第一种方式直接获取初始化完成的领域模型列表,第二种方式去除了Slot,看起来可以提高查询效率。第三种方式只需要id,这种方式查询效率更高了。三种方式只关注性能,而忽略了其它。领域模型的验证需要保证字段的完整性,所以完整初始化的模型是基础。对于需要部分数据的情况,可以使用对于类型接受,如id可以使用long类型。