我对我的应用程序结构中的“最佳实践”有一些疑问。我使用瘦模型,并拥有完成大部分(全部)数据库交互的服务层。模型在需要数据库事务时调用服务层。
我还有一个工厂类,它可以返回表单、模型和服务层类。这个工厂类也可能返回一个“搜索”类,它充当一个非常简单的 DBAL,并由我的服务层使用。
该搜索类具有 getAll() 和 getById() 等辅助方法。
我对我的应用程序的哪些部分应该可以访问搜索类有点困惑。目前我的模型在需要通过其 ID 检索实体时使用静态工厂来构建搜索类。我的模型是否应该调用我的服务层来进行此调用,从而消除使用我的工厂类返回搜索器的需要?
我想我不喜欢我的数据库可以从我的应用程序的多个部分访问的想法,而实际上我宁愿一切都需要首先通过我的服务层。
非常感谢提示和反馈!