У меня есть интерфейс IArticle
с несколькими реализациями: ProductType
, RawMaterial
, PaintType
и т.д.Тип интерфейса Переопределение реализации другого интерфейса
Тогда у меня есть то, что я считаю ссылку (SKU), который является составной элемент между IArticle
и Color
:
public interface IReference
{
Color Color { get; set; }
IArticle Article { get; set; }
}
Тогда у меня есть несколько реализаций, каждая из которых имеет соответствующую реализацию IArticle:
Product : IReference
будет иметьProductType
, какArticle
,SemifinishedGood: IReference
будет иметьRawMaterial
, какArticle
Paint : IReference
будет иметьPaintType
, какArticle
Так дело в том, ... как я могу переопределить Article
типа, что-то вроде этого:
public class Paint: IReference
{
public virtual Color Color { get; set; }
public virtual PaintType Article { get; set; }
}
Чтобы я мог получить доступ к PaintType
конкретным свойствам вместо того, чтобы быть только IArticle
, когда я имею дело с Paint.Article
без необходимости бросать каждый раз? Что не так в этой архитектуре?
Итак, почему 'public virtual' в вашей реализации' Paint'? Там не кажется большой причиной для этого. – Jamiec
@Jamiec это для NHibernate, который должен быть виртуальным. – Pinx0