C# 通过实现与基础设施相关的接口污染域类型
做了大约30分钟的搜索,找到了很多相关信息,但没有一个能解决这个问题,希望我没有重复一个常见的问题 我想知道关于在域类型中实现基础设施相关接口的一般共识是什么。我所读到的关于DDD的所有内容都让我相信这是应该避免的,因为这可以理解地有损于模型的简洁性 然而,我还不确定如何解决这个问题。具体来说,我有一个域类型,可以在我的表示层中使用,除了我想在需要它实现IComparable的控件中显示它的实例之外。我宁愿不要用这个接口的实现来“污染”我的类型 我认为(也许是天真的)我的选择是:C# 通过实现与基础设施相关的接口污染域类型,c#,.net,dns,aop,C#,.net,Dns,Aop,做了大约30分钟的搜索,找到了很多相关信息,但没有一个能解决这个问题,希望我没有重复一个常见的问题 我想知道关于在域类型中实现基础设施相关接口的一般共识是什么。我所读到的关于DDD的所有内容都让我相信这是应该避免的,因为这可以理解地有损于模型的简洁性 然而,我还不确定如何解决这个问题。具体来说,我有一个域类型,可以在我的表示层中使用,除了我想在需要它实现IComparable的控件中显示它的实例之外。我宁愿不要用这个接口的实现来“污染”我的类型 我认为(也许是天真的)我的选择是: 使用数据传输对
IComparable
的内容都会提供传递icomparaler
的选项。如果您的控件执行了,这将允许您实现数据对象外部的比较逻辑,并将其传入。我将首先对此进行调查
否则,我的建议是直接在对象中实现IComparable
。如果不想“污染”API,只需显式实现它。实现一个中间的“视图模型”类:
- 视图部分知道如何与用户界面对话(数据绑定、IComparable等)
- 它保存对模型(域)对象的引用
- 它公开模型对象的属性(并在必要时传递更改通知)