1

私はラップした API クラス A と B を持っています。たとえば、WrappedA と WrappedB です。ここで、WrappedA.AddMappingTo(WrappedB) を呼び出すことができるような方法で A.AddMappingTo(B) を呼び出す必要があります。これを行う最良の方法は何ですか?

オプション 1: 内部メンバー。WrappedA は WrappedB.B を見ることができます。

// class WrappedA
public void AddMappingTo(WrappedB wrappedB)
{
    a.AddMappingTo(wrappedB.b);
}

カプセル化を破るような感じですか?

オプション 2: 内部関数。WrappedA は、A.AddMappingTo(B) を呼び出す WrappedB.AddMappingFrom(A) を確認できます。

// class WrappedA
public void AddMappingTo(WrappedB wrappedB)
{
    wrappedB.AddMappingFrom(a);
}

//class WrappedB
public void AddMappingFrom(A a)
{
    a.AddMappingTo(b);
}

結束が壊れているように感じます-WrappedAとWrappedBの両方に、相互のマッピングを伴う関数がありますか?

他のオプションはありますか?

4

0 に答える 0