作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我现在正在阅读http://en.wikipedia.org/wiki/Domain-driven_design,我只需要2个简单的示例,以便了解DDD上下文中的“值对象”和“服务”。
最佳答案
值(value)对象的典型示例是金钱。很有可能,如果您构建一个国际电子商务应用程序,则需要将“金钱”的概念封装到一个类中。这将使您能够对货币值执行操作-不仅是基本加法,减法等,而且还可能是美元与欧元之间的货币转换。
这样的Money对象没有固有的身份-它包含您放入其中的值,并且当您处理它时,它就消失了。此外,即使包含单独的对象实例,两个包含10 USD的Money对象也被认为是相同的。
值对象的其他示例是长度之类的度量,其中可能包含一个值和一个单位,例如9.87公里或3英尺。再次,除了简单地包含数据之外,这种类型还可能提供转换为其他度量的方法,依此类推。
另一方面,服务是执行重要的Domain操作的类型,但实际上并不能很好地适应Domain的其他基于“名词”的概念。您应该努力使服务尽可能少,但是有时,服务是封装重要域概念的最佳方法。
您可以在出色的书Domain-Driven Design中阅读有关值对象,服务的更多信息,我仅推荐该书。
关于asp.net-mvc - 域驱动设计新手,请简要说明 'value objects'和 'services',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1075976/
我是一名优秀的程序员,十分优秀!