私は同じ方法の多くを持つ2つのインターフェイスを持っており、DRYの原則を破るようです。どのように私は私のインターフェイスでこれらの重複したメソッドを持っていない場所を得ることができますか?それともインターフェイスには関係ありませんか?2つのほぼ同一のインターフェースで何をすればよいですか?
インタフェース1:
public interface IRepositoryBase<TEntity> where TEntity : class
{
void Commit();
void Delete(object id);
void Delete(TEntity entity);
void Dispose();
IQueryable<TEntity> GetAll();
IQueryable<TEntity> GetAll(object filter);
TEntity GetById(object id);
TEntity GetFullObject(object id);
IQueryable<TEntity> GetPaged(int top = 20, int skip = 0, object orderBy = null, object filter = null);
void Insert(TEntity entity);
void Update(TEntity entity);
}
インタフェース2:
public interface IThirdWaveRepositoryBase<TEntity> where TEntity : class
{
IQueryable<TEntity> GetAll();
IQueryable<TEntity> GetAll(object filter);
TEntity GetById(object id);
TEntity GetFullObject(object id);
IQueryable<TEntity> GetPaged(int top = 20, int skip = 0, object orderBy = null, object filter = null);
}
第1インターフェイスが第2インターフェイスを継承(延長)できないのはなぜですか?何を試しましたか? _specifically_あなたが把握できないものは何ですか? –
@PeterDuniho、私はインターフェイスについて学んでいます。今、私はそれらを使用するビデオで言われたので、私はそれらを使用しています。私はそれらを完全に理解しようとしています。私が理解しているところから、 'どこのTentity:Class'が私のコードでは、別のインターフェースに固有のことができないのでしょうか?私は正しいのですか?なぜなら、私が別のものを置くと、ちょうどエラーが出るからです。 – djblois
_ "なぜ私が理解しているのは、どこのTentity:私のコードのクラスでは、別のインターフェースから生まれるものではありませんか?取得しているエラーメッセージのテキストをスタックオーバーフローで検索すると、それを実現する方法がわかります(ヒント:ジェネリック制約)。 –