インターフェイスを実装するのに手助けが必要です私のインターフェイスをより一般的にしたいと思っています。それは私が二つのモデル、CampaignModelとStringModelを持って立っているように、これらのは、同じメソッドを使用しますが、その中の異なる引数の両方すなわち私のアプリケーションで
CampaignModel:
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);
がStringsModel:
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);
私はちょうど午前私が使うことができるより汎用的なインターフェースを作成する方法については、方向性が必要です。この理由は、キャンペーンモデルまたはストリングモデルのいずれかからメソッドを呼び出すAdd、UpdateおよびDeleteビューが1つだけ、各モデル.i.eに対して1つのビューセットが必要なためです。あなたがこれを行う方法を知っていれば、私はそれを感謝します。
ありがとう、 スチュアート。
だから、あなたは基本的に2つの(おそらくは将来の)モデルのための1つのインターフェースを持っていたいと思いますか? – ub1k
はい、ただし、メソッドシグネチャのパラメータが異なります。 – stuartmclark
異なるパラメータを使って異なるタイプを意味する場合、 'Tigran'の答えは継承を使って問題をかなりカバーします。彼のソリューション 'BaseCampaign:IBase'に注目してください。 – ub1k