如何命名复合 class 这样的?
How to name a composite class like this?
我们的团队正在使用 Spring Boot 2 和 sql2o 作为数据库库。在我们服务的粘贴中,对于琐碎的方法,我们只需调用存储库和 returns 模型。例如,如果我有供应商 table,我在服务中有
@Override
public List<Supplier> findAll() {
return supplierRepository.findAll();
}
现在,由于在我们的控制器中我们需要 99% 的其他对象与模型相关,因此我将创建一个复合 class 来保存模型和其他模型。例如:
@Override
public List<UnknownName> findAll() {
List<Supplier> suppliers = supplierRepository.findAll();
List<UnknownName> res = new ArrayList<>();
UnknownName unknownName;
LegalOffice legalOffice;
if (suppliers != null) {
for (Supplier supplier in suppliers) {
unknownName = new UnknownName();
unknownName.setSupplier(supplier);
legalOffice = legalOfficeService.findByIdlegaloffice(supplier.getLegalofficeid);
unknownName.setLegalOffice(legalOffice);
res.add(unknownName);
}
}
return res;
}
class UnknownName 的名字应该是什么?
PS:我简化了代码以获得更好的可读性,但我使用了一个通用的 enrich() 函数,我调用了所有的查找方法,所以我不必重复代码。
我会推荐 SupplierDto
或 SupplierLegalOfficeDto
。 DTO 代表数据传输对象,通常用于丰富的模型 (more here)。
此外,您不应该检查 suppliers
是否为空,因为存储库总是 returns 非空列表。
最后,我采用了后缀Aggregator
,遵循Domain-driven design的写法
我们的团队正在使用 Spring Boot 2 和 sql2o 作为数据库库。在我们服务的粘贴中,对于琐碎的方法,我们只需调用存储库和 returns 模型。例如,如果我有供应商 table,我在服务中有
@Override
public List<Supplier> findAll() {
return supplierRepository.findAll();
}
现在,由于在我们的控制器中我们需要 99% 的其他对象与模型相关,因此我将创建一个复合 class 来保存模型和其他模型。例如:
@Override
public List<UnknownName> findAll() {
List<Supplier> suppliers = supplierRepository.findAll();
List<UnknownName> res = new ArrayList<>();
UnknownName unknownName;
LegalOffice legalOffice;
if (suppliers != null) {
for (Supplier supplier in suppliers) {
unknownName = new UnknownName();
unknownName.setSupplier(supplier);
legalOffice = legalOfficeService.findByIdlegaloffice(supplier.getLegalofficeid);
unknownName.setLegalOffice(legalOffice);
res.add(unknownName);
}
}
return res;
}
class UnknownName 的名字应该是什么?
PS:我简化了代码以获得更好的可读性,但我使用了一个通用的 enrich() 函数,我调用了所有的查找方法,所以我不必重复代码。
我会推荐 SupplierDto
或 SupplierLegalOfficeDto
。 DTO 代表数据传输对象,通常用于丰富的模型 (more here)。
此外,您不应该检查 suppliers
是否为空,因为存储库总是 returns 非空列表。
最后,我采用了后缀Aggregator
,遵循Domain-driven design的写法