我有一個關於包裝jaxb創建類的問題,並且很想聽聽你的輸入。評論我的JAXB對象封裝器
我的XSD看起來有點像:
<ComplexService>
<ComplexObject1>
<Element1></Element1>
<Parameter></Parameter>
</ComplexObject1>
<ComplexObject2>
<Element2> </Element2>
<Parameter> </Parameter>
</ComplexObject2>
...
<ComplexObject10>
<Element10> </Element10>
<Parameter> </Parameter>
</ComplexObjec10>
通過XJC運行上面的XSD後創建的類看起來有點像:
public class ComplexService{
ComplexObject1 object1;
ComplexObject2 object2;
...
ComplexObject10 object10;
public static class ComplexObject1{
//Accessors and mutators on ComplexObject1
}
public static class ComplexObject2{
//Accessors and mutators on ComplexObject1
}
...
public static class ComplexObject10{
//Accessors and mutators on ComplexObject1
}
}
現在我想創建一個封裝這些CompleObjects以及ComplexService類。
public class WrappedComplexObject1{
private final ComplexObject1;
public WrappedComplexObject1(){
complexObject1 = new ComplexObject1();
}
//Delegate calls to the underlying ComplexObject1
public String getServiceName(){
return complexObject1.getServiceName();
}
}
我的問題是:
請問上述方式來包裝類的首選方式?我的目標是不要混淆由xjc創建的基礎類;提供一個更好的命名API(類以及方法名稱)。
我也想驗證這些對象中的數據。因此,我正在考慮使用修飾器模式 來進一步包裝WrappedComplexObject1。這是一個推薦的方法嗎?
最後,xsd包含結構相同的元素「參數」(只包含一個值字段)。但是,當xjc創建ComplexService類時,爲每個ComplexObject創建一個新的Parameter類。
我應該擔心只有一個「Parameter」包裝類,或者我應該簡單地爲每個ComplexObject創建一個Parameter包裝類。
任何建議,想法,代碼示例將是最有幫助的。
感謝
我對這個問題很感興趣。你有沒有得到它的任何地方? – Martin 2009-12-07 00:01:32
答案如下。 – CaptainHastings 2009-12-07 17:30:43