Известный Болтун
Зарегистрирован: 11 April 2007
Сообщения: 723
Примеры кода: 0
|
Re: [dev] octalforty Waffle -- форум |
21 February 2008 15:08 |
|
|
|
|
C...R...a...S...HОдну иерархию я уже описал:
BusinessObjectWithVersionTagManagerBase
Еще одна иерархия может быть при использовании валидаторов
Что-нить напримере:
BusinessObjectWithVersionTagValidatorBase
Это как-то не совсем иерархии, но идею я, кажется понял.
Смысл этих интерфейсов в том, чтобы позволить прикладному коду работать с объектами полиморфно. То есть, если у нас есть метод
RssFeedItem BuildRssFeedItem(IBusinessObject businessObject)
{
RssFeedItem rssFeedItem = new RssFeedItem();
if(businessObject is IBusinessObjectWithName)
rssFeedItem.Title = ((IBusinessObjectWithName)businessObject).Name;
if(businessObject is IBusinessObjectWithDesciption)
rssFeedItem.Content = ((IBusinessObjectWithDesciption)businessObject).Description;
return rssFeedItem;
}
то ему совершенно неинтересно, что конкретно ему передают -- главное, чтобы переданный объект реализовывал IBusinessObject и, опционально, пару других интерфейсов. Таким образом получаем, что этот метод умеет обрабатывать и (если говорить про этот форум) Discussion, и DiscussionPost, и даже Forum.
|
|