上司、最近私に彼は私が構築していますN階層MVCアプリケーションに組み込むために望んでいるいくつかのC#.NETコードを与えました。彼は私に不足しているコードを記入したいと思う。ここでは中間層のクラスファイル(下図参照)のC# - (実装していない)のインスタンスを宣言するための理由インターフェース
public class UnitOfWork : IUnitOfWork
{
private readonly JRES_Context _context;
public UnitOfWork(JRES_Context context)
{
_context = context;
table1_UOW = new table1Repository(_context);
table2_UOW = new table2Repository(_context);
}
public Iinterface1 table1_UOW { get; private set; }
public Iinterface2 table2_UOW { get; private set; }
public int Complete()
{
return _context.SaveChanges();
}
public void Dispose()
{
_context.Dispose();
}
}
一つのものがある私を困惑:なぜ2以前に定義されたインタフェースが宣言されていますか?それを実装するインタフェースの目的ではない(それによって、それを実装するオブジェクトの内部で動作を強制する)か?私は別の良い目的があるかどうか疑問に思いました(インターフェースはUIレイヤーでいくつかの 'Get'メソッドを定義しています) - これをコード化する良い方法があるかもしれません。
コンポジションの継承をお読みください。 – BradleyDotNET
なぜこのクラスはインターフェイスを実装する必要がありますか? table1Repositoryとtable2Repositoryはすでにそれらを実装しています(そうでなければ、それらのクラスのインスタンスをあなたのプロパティに割り当てることができませんでした)。 –
実際に何かのためにインターフェイスを使用したことがない場合、インターフェイスを実装する際のポイントは何ですか?インターフェースを実装するポイントは、他のコードがそれらのインターフェースを物事に使用できるようにすることです。 – Servy