在我的应用程序中,我想让我的界面更通用。就目前而言,我有两个模型,CampaignModel 和 StringModel,它们都使用相同的方法,但参数不同,即
事件模型:
void GetAll(EventHandler<GetAllCampaignsCompletedEventArgs> eh);
void GetAllByName(string name, EventHandler<GetCampaignCompletedEventArgs> eh);
void GetAllByID(long id, EventHandler<GetAllCampaignsByIDCompletedEventArgs> eh);
void Add(Campaign entity, EventHandler<CreateCampaignCompletedEventArgs> eh);
void Update(Campaign entity, EventHandler<UpdateCampaignCompletedEventArgs> eh);
void Delete(Campaign entity, EventHandler<DeleteCampaignCompletedEventArgs> eh);
弦乐模型:
void GetAll(EventHandler<GetAllCampaignStringsCompletedEventArgs> eh);
void GetAllByName(string name, EventHandler<GetCampaignStringByIdentifierCompletedEventArgs> eh);
void GetAllByID(long id, EventHandler<EventArgs> eh);
void Add(CampString entity, EventHandler<EventArgs> eh);
void Update(CampString entity, EventHandler<EventArgs> eh);
void Delete(CampString entity, EventHandler<EventArgs> eh);
我只需要指导如何创建一个我可以使用的更通用的界面。这样做的原因是我只想要每个模型的一组 View 。即只有一个添加、更新和删除 View ,它将调用事件模型或字符串模型中的方法。如果您有任何想法如何完成这项工作,我将不胜感激。
谢谢,
斯图尔特。
最佳答案
如果您查看代码,您会发现,至少在您提供的函数中,两个类之间的变化是一种参数类型。这里的常用方法是为每个公共(public)组定义一个 Base 类型,所以这里是伪代码:
public class GetCampaignCompletedEventArgs : BaseEventArg {}
public class GetCampaignStringByIdentifierCompletedEventArgs: BaseEventArg {}
...
...
public class Campaign : BaseCampaign {}
public class CampString: BaseCampaign {}
在此定义接口(interface)或 AbstractClass 之后
public interface IBase {
void GetAllByName(string name, EventHandler<BaseEventArg > eh);
...
}
只是为了给你的想法,我很难写出真正具体的东西,因为它取决于你的实现。
希望这可以帮助。
关于c# - 需要帮助实现接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6622137/