数据访问层的设计模式

时间:2016-03-31 06:53:53

标签: java design-patterns database-design architecture

我必须在某个java项目中编写数据访问层,以支持nosql和SQL db服务器。

要使用它,您需要配置您正在使用的数据库服务器,并使用在后台使用DAL的业务逻辑层。

我为基本操作编写了一个基本的DAO接口,例如删除更新等。

对于BL层,我使用从DAO工厂接收它的基本接口编写抽象类。您需要从另一个处理BL实例的工厂获取这些类。

事情变得越来越复杂,当我需要更复杂的数据库查询时,代码转向样板,每个需要单独实现,然后我需要检查并转换DAO的类型以使用隐藏的方法基本界面。这导致只有一个模型对象的许多类。

TL; DR 在运行时不知道db类型的情况下,我需要一种简单且可扩展的方法来处理具有单个API的对象。

我的问题是,是否有更好的方法来处理这个问题?也许一些我不熟悉的设计模式可能会很好。

谢谢!

1 个答案:

答案 0 :(得分:0)

创建抽象数据层不是目标。目标应该是为业务层创建一个抽象来进行交互。还有更多的企业集成模式以及Gang of Four中的查询对象,它可以帮助您正确处理问题。

Repository pattern

Query object

CQS (Command/query seperation)

CQRS (Command/Query Segregation Principle)