AppFuse 通用/通用 DAO 和管理器使用

发布于 2024-07-25 12:28:05 字数 288 浏览 1 评论 0原文

我使用 AppFuse 创建项目已经有一段时间了。 我已经知道有两种方法可以开发 DAO 和 Manager 类:

  1. GenericDao/GenericManager 方法
  2. UniversalDao/UniversalManager 方法

我经常发现使用 Universal 方法更方便,因为我只需要一个类来管理所有实体。 我一直想知道从设计角度来看这是否是一个非常糟糕的选择。

我有理由选择通用变体吗? 一般来说,建议在我的应用程序中混合这两个类吗?

I've been using AppFuse to create my projects for a while now. And I'm already aware that there are two approaches to developing your DAO and Manager classes:

  1. GenericDao/GenericManager approach
  2. UniversalDao/UniversalManager approach

I often find that using the Universal approach to be more convenient, because I just need one class to manage all entities. Thou I always wondered if design-wise this would be a very bad choice.

Is there a reason why I should prefer the Generic variant? And generally, would It be advisable to mix both classes in my application?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

江挽川 2024-08-01 12:28:05

我个人更喜欢使用 UniversalDao/UniversalManager,原因如下:

  • “通用”方法通常涉及更多配置:您必须为每个实体配置一个 DAO 和一个管理器。 对于中大型型号来说,这是不可接受的;
  • 使用“通用”方法,您仍然需要进行大量转换。 例如,使用 Hibernate,您最终将进行大量向下转换,例如,从 List<; 对象> 列表< 我的域类>
  • 使用Universal,您可以创建一个更灵活的DAO来管理许多(不仅仅是一个)模型类,例如管理订单、项目和类别的OrderDAO。

当然,永远不要混合这两种方法! 这很容易做到,但在任何项目中一致性是一个伟大的美德;)

I personally prefer using UniversalDao/UniversalManager, for a couple of reasons:

  • "Generic" approach generally involves a lot more configuration: you must configure a DAO and a Manager for each entity. For a medium-large model this is just unacceptable;
  • with "Generic" approach you still have to do a lot of casting. For example with Hibernate, you will end up doing a lot of downcasting , e.g, from List< Object> to List< MyDomainClass>
  • with Universal you can create a more flexible DAO that manages many (not only one) model classes, for example a OrderDAO that manages Orders, Items and Categories.

And of course, never mix the two approaches! It can be easily done, but in any project uniformity is a great virtue ;)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文