问题标签 [domain-object]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1237 浏览

permissions - Symfony2:如何找到对某个域对象具有权限的用户?

在我们基于 Symfony2 的应用程序中,我们希望创建一个列表,列出系统中哪些用户对给定域对象具有权限。我们正在使用 ACL,我们的直接直觉是查看从相关域对象的 ACLProvider 返回的 ACL 对象,寻找可以返回具有权限的用户(或至少是 SecurityIdentities)的方法,但我找不到这样的方法。

我们确定可以通过 API 使用此功能,但我们无法找到这些方法的隐藏位置。

编辑另一种方法是直接在 acl 表中查找这些连接并找出这种方法,但这不是很漂亮,我们可能会重新发明轮子。

0 投票
4 回答
8733 浏览

php - 如何使用 ACL 根据某个用户的权限(例如 EDIT)过滤域对象列表?

当在 Web 应用程序中使用 Symfony2 中的 ACL 实现时,我们遇到了一个使用 ACL 的建议方法(检查单个域对象上的用户权限)变得不可行的用例。因此,我们想知道是否存在可以用来解决问题的 ACL API 的某些部分。

用例位于控制器中,该控制器准备要在模板中显示的域对象列表,以便用户可以选择她想要编辑的对象。用户无权编辑数据库中的所有对象,因此必须对列表进行相应过滤。

这可以(在其他解决方案中)根据两种策略来完成:

1) 一个查询过滤器,它使用来自当前用户的对象(或多个对象)的 ACL 中的有效对象 ID 附加给定查询。IE:

2) 后查询过滤器,在从数据库中检索到完整列表后,删除用户没有正确权限的对象。IE:

第一种策略更可取,因为数据库正在执行所有过滤工作,并且都需要两个数据库查询。一个用于 ACL,一个用于实际查询,但这可能是不可避免的。

在 Symfony2 中是否有实施其中一种策略(或实现预期结果的方法)?

0 投票
4 回答
31765 浏览

java - Transfer对象和Domain对象的区别

您能否简单地解释一下 Transfer 对象和 Domain 对象之间的区别?如果你能举一个Java例子,那就太好了..

0 投票
2 回答
2400 浏览

wcf - 服务契约与领域对象

假设我的应用程序有两个接口:

  • 一个网页前端
  • 提供数据的后端

它们都与 Web 服务对话,而该 Web 服务反过来处理业务逻辑并与单独的数据层对话,该数据层保留对象。

那么,如果 Web 服务的每个客户端都使用该 Web 服务的 DataContracts,我需要域对象来做什么

领域驱动设计在哪里适合,它给我的架构带来什么优势?

还是我已经拥有的东西很好,我根本不需要域对象?

我是否误解了领域驱动设计的含义和目的?

0 投票
2 回答
650 浏览

c# - 为 WinForms MVP 应用程序实现业务对象

我正在从头开始构建一个新系统并致力于应用程序的设计。我正在寻找可行的方法来为我的域对象建模。

关于项目的一些细节 - 这将是一个相当大的数据输入 WinForms 应用程序,集成到 ESRI ArcMap(一个 GIS 应用程序)中。数据访问必须通过 ArcMap 自己的数据访问图层 - 通过光标样式访问来检索和保存数据。这不是获取数据的问题,但据我所知,这排除了实体框架和 NHibernate 等 ORM 工具,因为我无法直接与数据库交互。

WinForms 应用程序将遵循 MVP监督控制器模式 - 视图将绑定到模型。演示者还将修改模型。所以 Domain 对象应该支持以下内容:

  • 变更通知
  • 更改跟踪。至少我想知道我的模型是否发生了变化。

到目前为止我的选择:

  1. 手写POCOS。+优点/缺点:
    • +应该可行
    • +可以容纳业务逻辑
    • +可绑定
    • - 大量的手工工作
      • - 通过 INotifyPropertyChange 接口更改通知。
      • - 通过 IsDirty 属性更改跟踪,必须手动维护。
  2. 由 POCO 包装的 ADO.NET 数据集。+优点/缺点:
    • +“免费”更改通知
    • +“免费”更改跟踪
    • +可绑定
    • - 感觉有点乱

我已经排除的:

  • 实体框架 - 我在 .net Framework 3.5 上,所以没有 Code First 支持。据我所知,处理域逻辑非常混乱 - 事件处理程序。

还有其他好的选择吗?也许代码生成(关于工具的任何建议?),一些框架?智慧之言,忠告?

0 投票
1 回答
1929 浏览

grails - 修改和验证 grails 域对象而不保存它

如何使用 GORM .get 检索对象 o、修改某些字段并调用 o.validate() 来查找错误,而无需 Hibernate 将对象保存到数据库。丢弃本身并不会阻止保存。也没有

这篇文章建议使用命令对象,但此代码将适用于许多不同的域对象。必须有一种简单的方法(传递给验证的一些参数?)给 Hibernate 不保存指令。我需要每次都创建一个新实例吗?

0 投票
1 回答
260 浏览

dependency-injection - 如何在没有服务位置的域对象中根据外汇汇率转换货币

此链接描述了 Money 对象上的一个函数,用于将不同货币的资金加在一起。

首先我不想使用服务定位器模式。我目前使用的模式是不让 Money 对象自己进行转换。如果您尝试将不同的货币添加在一起,它就会抛出。

我有拥有Money 对象的对象(即MultiCurrencyAccount)处理Money 的数学运算。我的问题是我目前正在将 IMoneyConverter 注入 MultiCurrencyAccount 域对象的构造函数。这对我来说感觉很脏,因为 IMoneyConverter 实际上是一种服务,它反过来使用 IForeignExchangeService (这个可以访问数据库)。我知道我不应该关心实现,因为我正在处理抽象,但感觉很奇怪。

我不确定我是否离开基地并将服务注入我的域对象是“正确的”,或者是否有更优雅的方式来做到这一点。

0 投票
2 回答
1338 浏览

java - 领域模型和用户界面

我不确定我是否应该直接在用户界面中使用域对象。例如,我希望为域实体用户 User 设计用户界面,该用户具有用户 ID、名称、密码和角色列表。实体的设计方式使其永远不会处于无效状态(例如无效密码或空 userId)

设计用户界面最合适的方式是什么?

1)坚持领域模型:设计3个窗口。窗口“新用户”使用给定的用户 ID、名称和密码创建一个新用户。另一个窗口“更改密码”用于更改密码,另一个窗口“修改用户”允许您修改现有用户的名称和角色

2) 最好只使用一个窗口来创建具有给定用户 ID、名称、密码和角色列表的用户。即使我还没有输入 userId,我也应该能够添加角色。

选项 1 是最容易实现的,因为我可以直接在用户界面中使用域对象。但是用户界面可能会导致使用起来很痛苦。选项 2 是可取的,但域对象不能直接使用。如果尚未创建用户,我看不到如何添加角色。我无法创建用户,因为当时我可能没有正确的信息,例如代表 userId 的临时空文本框。我怎样才能做到这一点?

我能想到的唯一干净的解决方案是创建在用户界面中使用的类,这些类将模仿真实域对象中的信息。所以我将能够创建一个空用户来添加角色,然后设置 userId。用户界面可以使用该信息来创建真正的域对象。

有没有简单的方法解决这个问题?这通常是如何管理的?

0 投票
1 回答
574 浏览

spring - Spring Roo:用初始数据填充新实体实例?

我想用自动生成的数据填充一个新实体。例如,我想用唯一标记填充实体字段。我认为这可以在域对象的构造函数中完成。

令我惊讶的是,我找不到 Roo 生成的域/实体类的构造函数。我自己引入构造函数是否违反了任何准则?还是我应该从 MyClass_Roo_Entity.aj 中推入持久性内容并在那里执行?提前致谢!

0 投票
4 回答
3638 浏览

jpa - 域对象是否与 JPA 实体相同?

域对象是否与 JPA 实体相同?如果我有一个价值对象(例如美元钞票),我如何(甚至应该)将它作为参考对象存储在数据存储中?

域对象在某些情况下是实体而在其他情况下是值对象的微妙之处是什么?任何人都可以指导我找到一篇关于这方面的好论文吗?