Является ли это правильной теорией ООП или нет, для обсуждения, но в зависимости от обстоятельств я бы не стал так быстро выходить из C. В то время как ti создает довольно большую зависимость, он может использовать его, если конкретная роль C заключается в управлении взаимодействием (и копированием) с A на B. Зависимость создается в C специально, чтобы избежать создания такой зависимости между A и B Кроме того, C существует специально для управления зависимостью и может быть реализована с учетом этого.
Ex. (В 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 невежественными друг друга.
Это, вероятно, лучше подходит для программистов.stackexchange.com – beetstra