1

私はエッジのインターフェースを持っています:

public interface IEdge<TPoint, TFactory>
    where TPoint : IPoint
    where TFactory : IEdgeFactory<TPoint>
{
    TPoint Begin { get; }
    TPoint End { get; }
    void Divide();
}

エッジは、ネストされたエッジを生成するものに分割できます。新しいエッジは、ファクトリ パターンを使用して作成されます。

public interface IEdgeFactory<TPoint>
    where TPoint : IPoint
{
    IEdge<TPoint> Create(TPoint begin, TPoint end)
}

実装内でファクトリをインスタンス化できるようにしたいと考えていますIEdge。通常は ie を使用して実行しpublic static IEdgeFactory<TPoint> Instance { get; }ますが、これをインターフェイスで定義することはできません。

では、シングルトン ファクトリを型パラメータとして渡し、それをインスタンス化する方法を実装に与える方法はありますか?

4

1 に答える 1

3

インターフェースを実装するクラスに factory を渡すだけです。

public interface IEdge<TPoint>...

class MyEdge : IEdge<MyPoint>
{
   IEdgeFactory<MyPoint> factory;
   public MyEdge(IEdgeFactory<MyPoint> factory)
   {
      this.factory = factory;
   }
}
于 2012-05-02T16:44:26.660 に答える