2017-10-13 55 views
1

我在我的代碼中使用了一個類C,我向一個團隊提供了一個服務API給我,他們提供的新函數的返回類型應該是C。我已經在我的代碼中使用了我的C,並且更新了他們的金塊包,我也有他們的C。兩個C都嚴格相同(在類的定義中,它們顯然不在相同的名稱空間中)。已經有相同類的API存在了

我該怎麼辦?我應該儘可能在最低的水平上寫一個明顯的包裝?最佳做法是什麼?

+0

所以,你試圖解決的問題是,你有兩個類,結構上(可能功能上)是相同的,但在不同的命名空間?你想要在期望其他命名空間的類的方法中使用一個命名空間的類嗎? – Corak

回答

0

您應該指定名稱空間,如:namespace.your_class_name

+0

是的,這就是我正在做的,但它是可怕的。非常長的命名空間 –

+1

您可以使用塊重新定義類名稱。使用OtherC = OtherNamesapce.C。 – Bor1ss

0

還有什麼可以做的?你的C和他們的C不是同一類,即使它們具有相同的結構。所以是的 - 必要時必須在兩個方向之間映射它們。如果你的團隊和團隊提供的服務「足夠接近」(比如在同一家公司工作) - 兩個團隊都可以使用普通類型的共享程序集,那麼你將只有一個C。其他選項包括你(作爲他們的包裝的消費者)使用他們的C類型而不是你自己的(當然不總是可能的或可取的)。你也可以使用動態來平等對待這兩種類型,但我當然不會推薦這樣做。

相關問題