Tom*_*onk 4 .net domain-driven-design
我正在考虑在我的域模型中实现所有实体INotifyPropertyChanged.我背后的主要原因是:
如果某个实体在域中发生了变化,表示层会立即知道它并相应地进行更改(我正在尝试实现MVPVM模式,并且表示对象与域对象不同).我认为应该让我更容易.
您认为缺点是什么?
域模型应该主要模拟域,这是它的主要责任.正如Arnis L.在另一个答案中所说,域模型不应该包含表示层的东西,我只能同意.
但是,实际上,我认为INotifyPropertyChanged(INPC)是可用的更仁慈的接口之一.虽然它的主要目的是支持UI框架(Windows窗体和WPF都使用它),但它主要是一种信令机制.除了实施它所涉及的工作量之外,它没有太大的危害.
默认情况下,我不会在我的域对象中实现它,但如果我最终需要某种信令机制(可能是我的View模型需要),我会毫不犹豫地应用它.毕竟,即使SRP声明一个类应该只有一个责任,这样的类仍然是最适合该任务的类型.没有其他类在状态发生变化时比类本身更清楚.
因此,如果您需要域模型中的信令机制,那么继续实施INPC - 没有理由发明新的.该接口在System.ComponentModel中定义,因此您还可以很好地了解它与特定UI框架无关.
实施INPC的主要缺点是涉及的工作量,所以我只会根据需要实施它.
| 归档时间: |
|
| 查看次数: |
445 次 |
| 最近记录: |