我有一个Java REST API,应用程序有三个层:
Controller -> public String storeInfo(JsonModel jsonModel)
Service -> public String store(InfoEntity entity)
Dao -> public String store(InfoEntity entity)
现在,我意识到这个“服务”并没有太多的工作要做,只是来回发送请求。后来我发现这是因为“Dao”和“service”具有相同的接口。
所以,我进行了更改:
Controller -> public String storeInfo(JsonModel jsonModel)
Service -> public String store(JsonModel jsonModel)
Dao -> public String store(InfoEntity entity)
现在,“服务”有更多的工作要做。它必须将输入数据映射到要存储到数据库中的实体。它从另一个对象获得帮助,但这是它的责任。
然而,现在我意识到“jsonModel”对象具有更多信息,不仅仅是保存的信息。例如,访问我的API需要用户名和密码。这是控制器的责任。也许我向“服务”发送了太多信息。
因此,我进行了以下更改:
Controller -> public String storeInfo(JsonModel jsonModel)
Service -> public String store(TransferObject transferObject)
Dao -> public String store(InfoEntity entity)
但后来我意识到我现在有三个不同的对象,这意味着我必须进行两种不同的映射。大量代码看起来过度设计了。
我应该如何改变现在,使其简单且功能有效?