2013-01-18 64 views
0

我正在使用提供對特殊服務器環境的訪問的API。這個API有很多可以從中檢索的Data對象。例如APICar用於複製和增強對象的最佳實踐(設計模式)

現在我想擁有包含該數據對象的所有信息的「我自己的」數據對象(MyCar),但是我想省略一些屬性,增加它,或者重命名一些他們。

這是因爲我需要JSON驅動客戶端應用程序中的那些數據對象。所以當有人更改上述API並更改屬性名稱時,我的客戶端應用程序將立即中斷。

我的問題是:

是否有一個最佳實踐或設計模式來複制這樣的對象嗎?就像當你有一個對象並想將其轉移到另一個類的另一個對象時一樣?我在eclipse中看到過類似於「AdapterFactory」的東西,並想知道它是否是廣泛使用的東西。

爲了更清楚:我ObjectA,我需要ObjectBObjectA來自API,其類可以經常更改。我需要一個能夠將ObjectA轉換爲ObjectB的方法或對象或類。

+2

http://oodesign.com/本網站介紹各種廣泛使用的模式。也許你會找到適合的地方。我想你想要的是一堆適配器,也許是一個門面。重命名和隱藏可能在代理模式中找到。只是一些「乍一看」的提示。很可能您需要結合一些模式才能達到您所描述的完整要求。 – Fildor

+0

[此問題](http://stackoverflow.com/questions/3319002/automapper-for-java)馬上來搜索。並關閉。 – Will

+0

和這個問題的關係在哪裏? – Chris

回答

3

我認爲你正在尋找Design Pattern Adapter

它真的只是包裝類A的一個實例,在B類的一個實例,提供使用它的/不同類型的不同方式。

「我認爲」是因爲你提到了複製問題,所以它可能不像持久性/傳輸的東西那麼多。

根據您的情況,您可能也會對動態代理感興趣,但這是一項Java功能。

+0

試圖澄清我的問題。我不認爲那個適配器有幫助,因爲我需要指定自己的「複製過程」。 – Chris

+0

我在「運行時適配器模式的進一步形式」下找到了我正在尋找的內容。我認爲這是實現我想要的方式。 – Chris

+0

是的,該解決方案似乎是一種動態代理:它們在運行時動態地構建適配器。你經常需要這個在一個可配置的系統中。 –