我有一些集成(如Salesforce),我想隱藏在與產品無關的包裝(如CrmService類而不是SalesforceService類)後面。創建包裝來隱藏數據結構的實現細節
看起來很簡單,我可以創建一個CrmService類並使用SalesforceService類作爲CrmService中的實現細節,但是,存在一個問題。 SalesforceService使用一些例外和枚舉。如果我的CrmService拋出SalesforceException或者您被要求使用Salesforce枚舉,那將會很奇怪。
任何想法如何我可以完成我想幹淨的?
編輯:目前爲例外情況,我趕上Salesforce之一,並拋出我自己的自定義之一。雖然我不確定我應該爲枚舉做些什麼。我想我可以將Salesforce枚舉映射到我自己的與提供者無關的列表,但我正在尋找一種通用解決方案,可能比必須執行此映射更清晰。如果這是我的只有選項(來映射它們),那麼沒關係,只是試圖獲得想法。
難道你不能只抓住SalesForceExceptions並拋出自己的自定義異常? – Nick
@Nick yup,關於枚舉的任何想法雖然? 編輯:btw,生病編輯我的問題說,這是我目前正在做的例外。我希望有一個更好的方法來設計這個一般。 – tau
不幸的是,除了映射枚舉之外,我沒有任何建議。不是最漂亮的,不是,但它有效。 – Nick