2016-09-17 39 views
1

解釋我的問題並不容易。使用原型,構建器模式的Java對象克隆(附加類成員)

JPA創建了一些用於計算的複雜對象,這些對象存儲在數據庫中。 我們決定在此對象的工作副本中設置結果。 這意味着對於每個對象模型,我們創建了一個分離的工作副本模型文件,其中包含相同的字段,但還包含其他LocalDates值和新結果字段。 計算開始時,工作副本被實例化。 這種方法不是我認爲的最好的。 我想到克隆對象的原型模式。 我在這裏遇到了如何添加新字段的問題。怎麼樣?Instantion成本和ist創建大量的附加模型類文件。 我只想將結果字段放在計算數據模型中作爲瞬態字段。 也許內部課程或本地課程? 我也嘗試使用一個接口作爲數據桶。但這不是接口的真正目的,它也只適用於很多好奇的技巧。 對於單元測試和用戶輸入,我認爲最好是使用構建器模式,然後告訴JPA存儲父對象,否則呢?

+0

「_我們決定將結果設置爲這些對象的工作副本。」爲什麼?爲什麼不只是一個'Result'類? – jaco0646

+0

與列表和集合一對多關係有很大的複雜對象關係。當我把結果設定爲一個新班級時,我無法確定正確的對象,例如在一個列表中。因此,我們爲這些結果生成相同的結構,並將這些類分離在一個包中。 – ubuseral

回答

0

很抱歉,但我的回答是長評論:(

沒有與列表大複雜對象關係,並設置一對多等關係。當我設置的結果IA類新我不能確定正確的對象,例如列表中,因此我們爲這些結果生成相同的結構,並將這些類分離到一個包中,也許可以不用第二次構建結構,也可以引用「基本類」。給每個基本類一個結果類,只有一點點導航才能從深層類獲得值,對於一個類似的用例,必須有一個最佳實踐,或者?接口或者某事我很不喜歡結果的許多類。克隆和添加classmember是不可能的結果或邏輯組更容易或類似的東西?

這可能是某人的解決方案: http://help.eclipse.org/luna/index.jsp?topic=%2Forg.eclipse.jdt.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fjdt%2Fcore%2FIWorkingCopy.html

在這裏,您將與Eclipse API共進,再創IWorkingCopies。 對於描述的任務太多了。

+0

也許解決辦法:http://help.eclipse.org/luna/index.jsp?topic=%2Forg.eclipse.jdt.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fjdt%2Fcore%2FIWorkingCopy.html – ubuseral

+1

您可以編輯您的問題以添加此信息(然後刪除此答案)。 – jaco0646