2010-12-05 62 views
2

我正在開發一個WPF應用程序,它將引用一個大部分包含業務對象和一些方法來操作這些對象的類庫。由於這個庫與WPF一起使用,我需要使用INotifyPropertyChanged接口。可重用類庫 - INotifyPropertyChanged

但是,我確實看到了未來在圖書館中可能不會特別依賴WPF(或者需要屬性更改通知)作爲表示層的用途。根據你的專業經驗,最好是省略接口,以便通過查找替代方法或使用接口並繼續前進以確保DLL可以從不必要的代碼中「乾淨」以供將來使用。

(顯然,這可以應用於各種其他編程實踐)。

感謝。

回答

2

我不同意INotifyPropertyChanged行爲只是駐留在ViewModel中。雖然INotifyPropertyChanged在表示層中被大量使用,但它的值超出了表示層。

我的每一個模型通常都包含INotifyPropertyChanged行爲,而不僅僅是ViewModel。

這可歸結爲如果您可以說服自己INotifyPropertyChanged行爲可能在消費者的表示層外部使用,請將其留在。

2

我會忽略業務層中的INotifyPropertyChanged。

如果我需要,我可以派生孩子並讓他們INotifyPropertyChanged,或者我可以創建一個「模型」類,它可以包含一個實例給我的業務對象。

這也有助於從我的其他層(演示,數據訪問等)分開我的業務層,以及允許我用說在我的服務器代碼對象,並不需要知道INotifyPropertyChanged的事情。

1

INotifyPropertyChanged實現屬於ViewModels,它封裝了GUI/View和相關行爲的狀態,以便它們易於測試。 ViewModels屬於表示層。所有與視圖無關的可重用代碼都需要向下推送到另一個層。所以,如果你需要換出WPF,建立一個不同的表示層,它使用這個層,你很好去。下層不應該假設它上面的圖層。所以沒有INotifyPropertyChanged在這一層。