Почему .NET ObservableCollection <T>реализован как класс, а не как интерфейс? - PullRequest
10 голосов
/ 25 июля 2010

Читая о шаблоне проектирования Observer, я заметил, что он реализован с использованием интерфейсов. В Java реализация java.util.observable также является классом. Разве в версиях C # и Java не должны использоваться интерфейсы?

Scott

Ответы [ 2 ]

11 голосов
/ 25 июля 2010

Ну, это реализует INotifyCollectionChanged и INotifyPropertyChanged. Однако, что интересно, он не реализует новый IObservable<T> интерфейс из .NET 4.0, который вы могли ожидать.

Возможно, было бы полезно иметь общую форму INotifyCollectionChanged ... но я не знаю ни одной.

2 голосов
/ 25 июля 2010

Но они используют интерфейсы.ObservableCollection в .NET является реализацией интерфейсов - вы можете игнорировать ее и делать свою собственную реализацию.

...