В WPF и Silverlight мы видели следующие классы:
UIElementCollection
ItemCollection
RowDefinitionCollection
ColumnDefinitionCollection
PointCollection
- и многое другое ....
Почему у них есть эти классы, один класс для каждого типа? Почему они не использовали общие классы, такие как Collection<T>
?
Кроме того, я видел в Silverlight, все эти классы были получены из PresentationFrameworkCollection<T>
, как
public sealed class ItemCollection : PresentationFrameworkCollection<Object>
public sealed class PointCollection : PresentationFrameworkCollection<Object>
public sealed class IconCollection : PresentationFrameworkCollection<Object>
//and so on...
Если все они происходят от общего класса, и я не вижу ничего открытого в производных классах (все они пусты!), То почему они определили их в первую очередь? Я чувствую, что есть некоторые различия, которые либо объявлены private
или internal
в производных классах. Но я точно не знаю.
Пожалуйста, помогите мне понять дизайн этих классов. В частности, почему они использовали их вместо общих классов, которые поставляются с фреймворком? Каковы преимущества?