Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 为模型提供简单POCO的参数_Design Patterns_Domain Driven Design - Fatal编程技术网

Design patterns 为模型提供简单POCO的参数

Design patterns 为模型提供简单POCO的参数,design-patterns,domain-driven-design,Design Patterns,Domain Driven Design,我是一名程序员,我认为我在OO方面受过良好的教育。我相信POCO C和一个只有get/set方法来封装数据的模型。三层域模型 我正在寻找支持简单域模型和服务层中的所有业务逻辑以及用于数据访问的DAL的价值的文档 马丁·福勒: 就是说贫血域模型没有价值,要使其有价值,它必须处理总线逻辑或/和数据CRUD操作。 我需要一些好书来反驳马丁·福勒的观点。 这不是解雇马丁·福勒,我尊重他的工作。我想更好地了解我们正在做什么,为什么 看看,它将数据与行为分开,试图通过将引起不同变化率的部分彼此分开来控制软件

我是一名程序员,我认为我在OO方面受过良好的教育。我相信POCO C和一个只有get/set方法来封装数据的模型。三层域模型

我正在寻找支持简单域模型和服务层中的所有业务逻辑以及用于数据访问的DAL的价值的文档

马丁·福勒:

就是说贫血域模型没有价值,要使其有价值,它必须处理总线逻辑或/和数据CRUD操作。 我需要一些好书来反驳马丁·福勒的观点。 这不是解雇马丁·福勒,我尊重他的工作。我想更好地了解我们正在做什么,为什么

看看,它将数据与行为分开,试图通过将引起不同变化率的部分彼此分开来控制软件的发展。它还使用角色或特征的概念来实现将数据和行为重新组合在一起的预期功能

James Coplien有一本书探讨了更广泛的体系结构主题,强调DCI:敏捷软件开发的精益体系结构。

请看一看,它将数据与行为分离,试图通过将引起不同变化率的部分彼此分离来控制软件的演化。它还使用角色或特征的概念来实现将数据和行为重新组合在一起的预期功能


James Coplien有一本书讨论了更广泛的体系结构主题,强调DCI:敏捷软件开发的精益体系结构。

你可以从。。。福勒本人

,p。110,事务脚本:

无论你变得多么顽固,不要排除交易 剧本这里有很多简单的问题,还有一个简单的问题 该解决方案将使您启动并运行得更快

事务脚本并不完全是您所描述的那种服务,它可能不使用域对象,甚至是不完善的对象,但它非常接近


另外,请注意,POCO的概念并没有假设任何关于对象的愚蠢或贫乏。您可以拥有具有行为的丰富域POCO。POCO/POJO描述了一个简单的本机对象,而不是用注释或属性修饰的对象,或从框架继承特殊类的对象,通常是为了持久性的目的。

您可以从。。。福勒本人

,p。110,事务脚本:

无论你变得多么顽固,不要排除交易 剧本这里有很多简单的问题,还有一个简单的问题 该解决方案将使您启动并运行得更快

事务脚本并不完全是您所描述的那种服务,它可能不使用域对象,甚至是不完善的对象,但它非常接近

另外,请注意,POCO的概念并没有假设任何关于对象的愚蠢或贫乏。您可以拥有具有行为的丰富域POCO。POCO/POJO描述了一个简单的本机对象,而不是用注释或属性修饰的对象,或从框架继承特殊类的对象,通常是为了持久性的目的。

引用Fowler,:

问题的实质 对于贫血领域模型来说,它们承担了一项研究的所有成本 领域模型,但不产生任何好处

成本包括将您的对象映射到数据库,以及您在设计贫血领域模型时投入的精力。如果你已经决定不需要DDD的好处,并且贫血模型相关的成本是可以接受的,那么你就有了一个相反的论点

但是,请确保您的贫血模型+服务+DAL+用户界面?比Ruby on Rails上的应用程序便宜吗?圣杯?有一些

当我们想要简化一个复杂的问题,而不是使一个简单的问题复杂化时,领域驱动设计通常被应用。再次引用:

域模型并不总是最好的工具

分析您的需求,选择合适的体系结构并交付您的应用程序。

引用Fowler的话:

问题的实质 对于贫血领域模型来说,它们承担了一项研究的所有成本 领域模型,但不产生任何好处

成本包括将您的对象映射到数据库,以及您在设计贫血领域模型时投入的精力。如果你已经决定不需要DDD的好处,并且贫血模型相关的成本是可以接受的,那么你就有了一个相反的论点

但是,请确保您的贫血模型+服务+DAL+用户界面?比Ruby on Rails上的应用程序便宜吗?圣杯?有一些

当我们想要简化一个复杂的问题,而不是使一个简单的问题复杂化时,领域驱动设计通常被应用。再次引用:

域模型并不总是最好的工具

分析您的需求,选择合适的体系结构和
d交付您的应用程序。

这里有一些来自Java世界的反驳:这里有一些来自Java世界的反驳:那么,处理大型应用程序的最佳方法是什么呢?大型应用程序需要处理WWW,可能还需要处理客户机-服务器-桌面调用。是使用ActiveRecord还是POCO?如果不了解更多上下文,很难回答这个问题。在考虑DDD而不是ActiveRecord时,系统的规模不是最重要的因素。选择ActiveRecord并不意味着一个小规模的系统。以Github为例,规模相当大;如果我没记错的话,他们使用RubyonRails作为前端。Twitter也使用了Ruby on Rails。投入市场的时间也很宝贵。那么,处理大型应用程序的最佳方法是什么呢?大型应用程序需要处理WWW,可能还需要处理客户机-服务器-桌面调用。是使用ActiveRecord还是POCO?如果不了解更多上下文,很难回答这个问题。在考虑DDD而不是ActiveRecord时,系统的规模不是最重要的因素。选择ActiveRecord并不意味着一个小规模的系统。以Github为例,规模相当大;如果我没记错的话,他们使用RubyonRails作为前端。Twitter也使用了Ruby on Rails。上市时间也很宝贵。POCO/POJO描述了一个简单的本机对象,而不是用注释或属性装饰的对象。这是否意味着JPA@Entityies不是POJO?古老的故事,仍然有价值。如果OP是针对Fowler的命令提出反论点,我认为引用Fowler并不能回答他的问题。POCO/POJO描述了一个简单的本机对象,而不是一个用注释或属性修饰的对象。这是否意味着JPA@Entityies不是POJO?古老的故事,仍然有价值。如果OP是针对福勒的命令提出反论点,我认为引用福勒的话并不能回答他的问题。