2

在我看到的 95% 的示例中,人们正在向他们的域对象添加@Entity@Document注释。

我想创建一个可以轻松更改持久层的应用程序。应该可以从设置切换SQL DB到 exMongoDB等。

我想让我的域对象完全独立于持久层。

我想过这样的事情: 在此处输入图像描述

Item域对象在哪里。

public interface ItemsRepository {

    List<Item> getItems();
}

每个ItemsRepository实现都有它自己的专用持久层对象。对于 SQL,假设是ItemEntity类,对于 MongoItemDocument类。并且每个持久对象都有与域对象的转换。

这样的方法可以接受吗?如果不是,解决该问题的最佳行业模式是什么?

4

1 回答 1

1

我认为这是Dependency Inversion Principle的一个很好的应用。我这样说并不是为了反驳对该问题的其他评论,而是强调这种设计从多个角度来看似乎是站得住脚的。我经常根据类似的结构设计代码库。是的,我会说这是可以接受的。

于 2021-04-19T06:46:32.990 回答