Let s say I have some content classes like Page, TabGroup, Tab, etc. Certain of those will be implementing my IWidgetContainer interface - it means they will geet an additional field named ContainedItems from the interface and some methods for manipulating this field.
现在,我需要反映这样一个事实,即某些阶层通过在我的协会中进行某些特殊习俗控制来实施这一接口。 NET MVC 意见(如j Query Add/Remove/Move/Reorder buttons)。
例如,塔布集团将实施IWidgetContainer,因为它将含有表格,但一个表格不会执行,因为它赢得了控制任何东西的能力。
因此,我认为,当我提出内容反对时,我不得不作一些检查。 (问题在于,我认为,我的基类不是具体班级,而是使用IWidgetContainer。)
怎么可能,或者我完全错失了什么?
为了回答这个问题,你如何反映一般的“统一分类”(不一定是“ASP.NET MVC”)的某些特殊性质(如接口执行)?
我迄今为止的守则如下:
[DataContract]
public class ContentClass
{
[DataMember]
public string Slug;
[DataMember]
public string Title;
[DataMember]
protected ContentType Type;
}
[DataContract]
public class Group : ContentClass, IWidgetContainer
{
public Group()
{
Type = ContentType.TabGroup;
}
public ContentList ContainedItems
{
get; set;
}
public void AddContent(ContentListItem toAdd)
{
throw new NotImplementedException();
}
public void RemoveContent(ContentListItem toRemove)
{
throw new NotImplementedException();
}
}
[DataContract]
public class GroupElement : ContentClass
{
public GroupElement()
{
Type = ContentType.Tab;
}
}
接口:
interface IWidgetContainer
{
[DataMember]
ContentList ContainedItems { get; set; }
void AddContent(ContentListItem toAdd);
void RemoveContent(ContentListItem toRemove);
}