1

我有 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 都具有涉及相互映射的功能?

还有其他选择吗?

4

0 回答 0