gpt4 book ai didi

asp.net-mvc - 域驱动设计新手,请简要说明 'value objects'和 'services'

转载 作者:行者123 更新时间:2023-12-04 13:45:31 25 4
gpt4 key购买 nike

我现在正在阅读http://en.wikipedia.org/wiki/Domain-driven_design,我只需要2个简单的示例,以便了解DDD上下文中的“值对象”和“服务”。

  • 值对象:一个描述事物特征的对象。值(value)对象没有概念上的认同。它们通常是只读对象,可以使用Flyweight设计模式进行共享。
  • 服务:当操作在概念上不属于任何对象时。遵循问题的自然轮廓,可以在服务中实现这些操作。服务概念在GRASP中被称为“纯加工”。

  • 值objexts:有人可以给我一个简单的例子吗?

    服务:因此,如果它不是对象/实体,也不属于存储库/工厂,那么它是服务吗?我不明白

    最佳答案

    值(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/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com