我有API类A和B,我已经包装过,比如WrappedA和WrappedB。现在我需要以这样的方式调用A.AddMappingTo(B),我可以调用WrappedA.AddMappingTo(WrappedB),这是最好的方法吗?
选项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都有涉及相互映射的功能?
还有其他选择吗?