1

我对我的应用程序结构中的“最佳实践”有一些疑问。我使用瘦模型,并拥有完成大部分(全部)数据库交互的服务层。模型在需要数据库事务时调用服务层。

我还有一个工厂类,它可以返回表单、模型和服务层类。这个工厂类也可能返回一个“搜索”类,它充当一个非常简单的 DBAL,并由我的服务层使用。

该搜索类具有 getAll() 和 getById() 等辅助方法。

我对我的应用程序的哪些部分应该可以访问搜索类有点困惑。目前我的模型在需要通过其 ID 检索实体时使用静态工厂来构建搜索类。我的模型是否应该调用我的服务层来进行此调用,从而消除使用我的工厂类返回搜索器的需要?

我想我不喜欢我的数据库可以从我的应用程序的多个部分访问的想法,而实际上我宁愿一切都需要首先通过我的服务层。

非常感谢提示和反馈!

4

1 回答 1

1

我最终会创建一个SearchService(它实现了一个接口,即 ISearchService)类,模型或任何其他想要访问的代码Searcher将与之交互。

这样,您就可以与Searcher班级或工厂保持清晰的分离,这在未来可能会发生变化。另一个好处是,通过将所有与搜索相关的代码放在 中SearchService,开发人员更容易理解代码,因为他们知道与搜索相关的代码SearchService在等等

此外,通过使用 ISearchService,您可以选择使用依赖注入,这是一种为您初始化对象的好方法,而不必担心实现更改。

这只是我的偏好,而不是这是一种正确/错误的做事方式。

于 2012-12-14T10:50:45.837 回答