我必须在某个java项目中编写数据访问层,以支持nosql和SQL db服务器。
要使用它,您需要配置您正在使用的数据库服务器,并使用在后台使用DAL的业务逻辑层。
我为基本操作编写了一个基本的DAO接口,例如删除更新等。
对于BL层,我使用从DAO工厂接收它的基本接口编写抽象类。您需要从另一个处理BL实例的工厂获取这些类。
事情变得越来越复杂,当我需要更复杂的数据库查询时,代码转向样板,每个需要单独实现,然后我需要检查并转换DAO的类型以使用隐藏的方法基本界面。这导致只有一个模型对象的许多类。TL; DR 在运行时不知道db类型的情况下,我需要一种简单且可扩展的方法来处理具有单个API的对象。
我的问题是,是否有更好的方法来处理这个问题?也许一些我不熟悉的设计模式可能会很好。
谢谢!
答案 0 :(得分:0)
创建抽象数据层不是目标。目标应该是为业务层创建一个抽象来进行交互。还有更多的企业集成模式以及Gang of Four中的查询对象,它可以帮助您正确处理问题。