これが正しい OOP 理論であるかどうかは議論の余地がありますが、状況によっては、C をすぐに除外することはできません。ti はかなり大きな依存関係を作成しますが、C の特定の役割が A から B への相互作用 (およびコピー) を管理することである場合は、それを使用できます。依存関係は、特に A と B の間でそのような依存関係を作成しないように C で作成されます。さらに、C は依存関係を管理するために特別に存在し、それを念頭に置いて実装することができます。
元。(vb.Net/Pseudocode):
Public Class C
Public Shared Function BClassFactory(ByVal MyA As A) As B
Dim NewB As New B
With B
.CommonProperty1 = A.CommonProperty1
.CommonProperty2 = A.CommonProperty2
End With
Return B
End Function
End Class
AtoBConverterClass などを作成する具体的な理由がある場合、このアプローチは有効である可能性があります。
繰り返しますが、これは特殊なケースかもしれません。しかし、私は時々それが役立つことを発見しました。特に、A と B がお互いのことを知らないままにしておく本当に重要な理由がある場合はなおさらです。