繁体   English   中英

具有可互换持久层的应用程序

[英]Application with interchangeable persistance layer

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

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

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

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

其中Item是域 object。

public interface ItemsRepository {

    List<Item> getItems();
}

每个ItemsRepository实现都有自己的专用持久层 object。 对于 SQL,假设为ItemEntity class,对于 Mongo ItemDocument class。 并且每个持久性 object 都具有与域 object 之间的转换。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM