现在用CXF开发Web service中一直有个疑惑,那就是Web service的接口返回值如果是复杂类型,并且属性本身是一个抽象类或者接口的话,这种设计在平时开发时没有问题,那在web service开发中这样是否合理?为了表达清楚一下 举例如下:
假如有这样一个接口,要暴露为web service(细节省略,只列出方法签名)。
[code="java"]public RespResult sayHi();[/code]
假设RespResult同样为复杂对象,如下:
[code="java"]
public class RespResult {
private String resultCode;
private AbstractClazz clazz;
/*
geter.. setter..
*/
}
[/code]
而AbstractClazz本身为抽象类(是Interface也无妨),有两个具体实现类,如下:
[code="java"]
public class AbstractClazz {
private String name;
//getter.. setter..
}
public class ClazzA extends AbstractClazz {
private String attributeA;
//getter.. settter
}
public class ClassB extends AbstractClazz {
private String attributeB;
//getter.. setter..
}
[/code]
像这种返回值的设计是否合理,还是应该针对两种可能的AbstractClazz的子类将该接口设置为两个接口,返回两个包含具体子类的返回值?
不知道各位是怎么处理Web service返回值多态的情况。
欢迎赐教讨论。