在 POCO 上实现 INotifyPropertyChanged
Implementing INotifyPropertyChanged on a POCO
我有一个 POCO class,其中有许多属性可以是 get/set。
在此 class 上实现 INotifyPropertyChanged 是否违反了 POCO 的原则?
我希望另一个 class 收到关于 POCO 的任何更改的通知,并将这些更改写入文件,让它监听 属性 更改似乎是最好的做法这个
您需要一种或另一种方式来通知您的应用程序数据库中的更改(前提是一次有多个实例)。
让您的 POCO 实现 INotifyPropertyChanged
是一种合法的方式。请注意,它位于 System.ComponentModel
命名空间中,并且 - 尽管在 WPF 中广泛使用 - 不是 ui-东西。
一种替代方案可以通过某些 CQRS 方案来通知您的 POCO 消费服务通过专门设计的接口进行更改。
只要它满足你的要求并且你知道你在做什么,就没有问题。
在软件世界里,人们通常会重复地面对同样的问题。为了以一致的 tested/verified 方式处理这些问题,引入了 patterns/paradigms。所有 patterns/paradigms 大体上都制定了准则。他们中的大多数(虽然很少)没有说明应该如何实施。
也就是说,实施细节由实施该模式的开发人员决定。确保您不会在实施过程中产生新问题。
术语 POCO 派生自其 Java 等效的 POJO。以下是 Martin Fowler says 关于 POJO 的内容:
In the talk we were pointing out the many benefits of encoding business logic into regular java objects rather than using Entity Beans. We wondered why people were so against using regular objects in their systems and concluded that it was because simple objects lacked a fancy name. So we gave them one, and it's caught on very nicely.
注意上面引用中的粗体文本。
考虑到这一点,在 POCO class 上实施 INotifyPropertyChanged
不应被视为违反 POCO 原则。
关于 INotifyPropertyChanged
和 MVVM 的关系:接口在 System.ComponentModel
中定义,并没有紧密绑定到 MVVM。
我有一个 POCO class,其中有许多属性可以是 get/set。
在此 class 上实现 INotifyPropertyChanged 是否违反了 POCO 的原则?
我希望另一个 class 收到关于 POCO 的任何更改的通知,并将这些更改写入文件,让它监听 属性 更改似乎是最好的做法这个
您需要一种或另一种方式来通知您的应用程序数据库中的更改(前提是一次有多个实例)。
让您的 POCO 实现 INotifyPropertyChanged
是一种合法的方式。请注意,它位于 System.ComponentModel
命名空间中,并且 - 尽管在 WPF 中广泛使用 - 不是 ui-东西。
一种替代方案可以通过某些 CQRS 方案来通知您的 POCO 消费服务通过专门设计的接口进行更改。
只要它满足你的要求并且你知道你在做什么,就没有问题。
在软件世界里,人们通常会重复地面对同样的问题。为了以一致的 tested/verified 方式处理这些问题,引入了 patterns/paradigms。所有 patterns/paradigms 大体上都制定了准则。他们中的大多数(虽然很少)没有说明应该如何实施。
也就是说,实施细节由实施该模式的开发人员决定。确保您不会在实施过程中产生新问题。
术语 POCO 派生自其 Java 等效的 POJO。以下是 Martin Fowler says 关于 POJO 的内容:
In the talk we were pointing out the many benefits of encoding business logic into regular java objects rather than using Entity Beans. We wondered why people were so against using regular objects in their systems and concluded that it was because simple objects lacked a fancy name. So we gave them one, and it's caught on very nicely.
注意上面引用中的粗体文本。
考虑到这一点,在 POCO class 上实施 INotifyPropertyChanged
不应被视为违反 POCO 原则。
关于 INotifyPropertyChanged
和 MVVM 的关系:接口在 System.ComponentModel
中定义,并没有紧密绑定到 MVVM。