首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与分层应用中的域逻辑相同的复杂表示逻辑

与分层应用中的域逻辑相同的复杂表示逻辑
EN

Stack Overflow用户
提问于 2013-12-27 17:32:58
回答 1查看 95关注 0票数 0

我用复杂的域编写分层的应用程序。在服务器端,有一个复杂的类document,例如,它具有Price属性。价格由策略模式类计算,如ManualEnteredPrice、DistributedPrice、DiscountedPrice等。在单元测试中,一切正常,价格计算,文档加载和存储在数据库中,等等。现在,我将编写富客户端(winforms)和web门户(javascript)来操作文档。我对项目使用DataTransferObjects,并从客户端的服务层通过WCF传递数据。在客户端,我从数据传输对象中构建某种视图模型(表单中的绑定和web中的敲除)。我必须重新编写价格计算逻辑,以达到演示的目的。一些用于策略选择的单选按钮,一些用于数据输入的控件,以及用于计算价格以显示价格的类似价格-策略-类。然后,当我将DTO传递回服务器时,我不使用计算价格,因为我不能信任它的值。我必须填写文档中的一些字段,然后重新计算价格。所以,我有两个不同的类层次结构,做同样的事情-价格计算。

这是正确的吗?也许还有另一种方法?当域中和客户端上存在相同的逻辑时,通常会出现这种情况。你是如何规划这个架构的?

我不能重用客户端中的域,因为客户端的类有一些不同的字段或附加字段或行为。

我不能只将价格计算传递给服务层,因为它依赖于文档状态、状态和许多其他文档内容。是否整单重算价格传递给服务,然后在viewmodel中接收并设置价格?

您如何实现表示逻辑,即与域逻辑相同的逻辑?

EN

回答 1

Stack Overflow用户

发布于 2013-12-27 21:01:54

我认为你的方法是正确的。正如您可能了解的那样,制定架构决策需要进行一些权衡。遵循这种特定的方法,您将获得许多好处(数据完整性、关注点分离、最小的代码依赖性等)。另一方面,你重复了很多逻辑,你认为这可能不是很容易维护的。

我之所以选择遵循您的方法,是因为我认为这些层之间的唯一依赖关系是logical。不能丢弃此逻辑依赖项。另一方面,遵循您的体系结构可以最小化代码依赖,这是任何软件开发体系结构的主要关注点。

希望我能帮上忙!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20798172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档