我有 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 可以看到 WrappedB.AddMappingFrom(A) 调用了 A.AddMappingTo(B)。
// class WrappedA
public void AddMappingTo(WrappedB wrappedB)
{
wrappedB.AddMappingFrom(a);
}
//class WrappedB
public void AddMappingFrom(A a)
{
a.AddMappingTo(b);
}
感觉它破坏了凝聚力 - 现在 WrappedA 和 WrappedB 都具有涉及相互映射的功能?
还有其他选择吗?