问题标签 [value-objects]
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.
web-services - DDD with webservices DTO as value object: how to handle them?
I have a "MyUnits" application that let's manage Units (like meters, kilograms, pounds, miles, km/h...). The model is complex, it supports unit compatibilities, operations, conversions, etc.
I have another application (MyApp) that will need to use "units", so I want to make it use my "Units" application.
What I thought is to have a "Units" service (webservice) UnitService
that consumes and returns a Unit DTO UnitDTO
.
In MyApp, I have this model:
The problem: in OperationAdd.execute()
, I need to check that units are compatibles (for example).
So either:
UnitDTO
has a method that will callUnitService::areCompatible
, but that is wrong! How a DTO (that should only contain data) knows UnitService which is a webservice! It shouldn'tOperationAdd.execute()
callsUnitService::areCompatible
, but that is wrong! How OperationAdd (an entity) knows UnitService which is a webservice! It shouldn'tor I have a
OperationService
that does the work (and that can call services) but myOperation
entities would be like data containers, entities with no methods, and that's not really what DDD is about
I don't want anemic entities, but in the case where I have an entity that uses a service, how can I do?
And: am I wrong thinking that UnitDTO can be used as a VO?
java - 如果我使用 VO 和 DAO,如何在 JTable 中实现数据库搜索?
每个人。在绞尽脑汁之后,我决定为这个主题做出贡献。
我从中获得的大部分过滤代码:
使用的软件:
- MySQL 14.14
- JDK 7
- NetBeans 7.1.2
假设我们有以下名为“ table ”的示例表:
创建一个名为“ vTable ”的视图,考虑一个仅显示 ID、姓名和出生日期的列表:
我使用的是 MVC 模式,所以有包“模型”、“视图”和“控制器”。
创建数据访问对象TableDAO:
创建值对象(不要忘记生成 getter 和 setter)TableVO:
VTableVO类:
ITableDAO接口:
ITableVO接口:
有了这种结构,我们如何在 JTable 中实现搜索功能呢?
domain-driven-design - 如何在领域层中使用外部值对象库
我想拥有一个或多个可重用类库,这些库基本上是值对象,例如 Address、PhoneNumber、EmailAdress,主要包含属性和一些支持方法。我的域层如何在不违反域层不应包含外部引用的规则的情况下使用这些,并且不将它们定义为域层中的接口/抽象类?
java - JPA 注释对象作为常规值对象
我有一个具有 JPA 注释的类.. @Embedded
,@AttributesOverride
等。我可以将此对象用作常规 POJO / VO 吗?那么这些注释会发生什么?他们只是被忽略了吗?或者它们仍然会被使用/激活?
ios - 在 iOS Core Data 中映射嵌入对象
假设有一个 Web 服务返回这样的 JSON 响应:
这是描述一个 Person 实体,但在这个实体内部,有一个包含嵌入对象的 phone 属性。
Phone 不是实体,它没有被 id 引用,它完全包含在这个 Person 实体的范围内。但是,最好将它映射到我的代码中的 Phone @interface(例如,它可能有一个方法“formatAsString”,它返回如下格式的字符串:“+1 (11) 55544433”)
将模型映射到 iOS Core Data 时应该如何处理这种情况?
backbone.js - 面向对象的模型和backbone.js
假设我正在使用一个返回 JSON 数据但具有复杂或可变结构的 API。例如,一个字符串值的属性可以是一个普通的文字,或者可以用一种语言标记:
在我的客户端代码中,我不想让视图代码担心标签是否可用于多种语言,以及选择哪一种等。或者我可能出于其他原因想要隐藏详细的 JSON 结构。因此,我可能会使用合适的 API 将 JSON 值包装在一个对象中:
所以这都是非常正常的 value-object 模式,它很有帮助,因为它与特定的 JSON 结构更加解耦,更可测试等等。好的。
我目前看不到的方法是如何将这些值对象之一与 Backbone 和 Marionette 一起使用。具体来说,我想使用一个Foo
对象作为 Backbone 的基础Model
,并将其绑定到 Marionette ItemView
。但是,据我所见, a 中的值Model
直接取自 JSON 结构 - 我看不到识别对象是函数的方法:
所以我的问题是:将 Backbone 的属性与Model
给定 JSON 结构的细节(例如复杂的 API 值)分离的好方法是什么?值对象、模型和视图可以做得很好吗?
编辑
让我再举一个例子,因为我认为上面关注 i18n 问题的例子只表达了我的部分担忧。稍微简化一下,在我的领域中,我的水体包括河流、湖泊和潮间带。一个水体关联了一个或多个采样点,每个采样点都有一个最新的样本。这可能来自服务器上的数据 API,如下所示:
因此,在我的视图代码中,我可以编写如下表达式:
或者
但如果 API 格式发生变化,那将是可怕的,并且很容易被破坏。稍微好一点的是,我可以将这些操作抽象到模板辅助函数中,但仍然很难为它们编写测试。我想做的是有一个值对象类Waterbody
,这样我的视图代码就可以有类似的东西:
我发现 Marionette 的主要问题之一是坚持调用toJSON()
传递给视图的模型,但也许一些计算属性建议有办法解决这个问题。
actionscript-3 - 在类之间的动作脚本中使用 VO
在我的班级中,我构建了一个 Weather VO(视觉对象),现在需要将它用于另一个班级。我将如何使用它来修改第二堂课中文本字段的值?我尝试使用 getter 和 setter 无济于事。
第一页:
第二页:
c# - 使用 Dapper 的值对象
我有一个带有聚合值对象的实体,如下所示:
我的持久性模型是具有以下字段的单个表:Id, Name, Street, Town, Region
、ecc。在这种情况下,是否可以使用 Dapper 创建/读取/更新/删除实体?
java - 所有不可变对象都可以重用吗?
从有效的 Java 书籍中,它指出“如果对象是不可变的,则它总是可以重用”。
此版本使用single String instance
, 而不是每次执行时都创建一个新版本。此外,保证该对象将被运行在同一虚拟机中的任何其他代码重用,这些代码恰好包含相同的字符串文字。
那么下面的最终类也是不可变的呢?点对象可以重复使用吗?
谁能给我一个上面的例子,immutable class
它的对象/实例可以被重用吗?我只是对可重用性如何发生感到困惑?
我能够与String
类相关联Integer
,但不能与用户定义的类相关联。
database - 关系数据库中的模式基于关联或层次结构
如果我们要将我们的 db 模式映射到 java 层,它应该是域对象的层次结构还是域对象之间的关联。