私はラップした 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の両方に、相互のマッピングを伴う関数がありますか?
他のオプションはありますか?