Documentum示例代码从未被深深评论过,所以我的问题是:
这一行是什么意思?
IDfQuery query = DfcUtils.getClientX().getQuery();
答案 0 :(得分:6)
您可以使用
在Java中安全地替换它IDfQuery query = new DfQuery();
采用工厂方法的方法出现了旧的Docbasic时代,它受到COM能够或不能做的约束
答案 1 :(得分:5)
对旧问题的回答,但原始海报询问该线的含义,而不是可以使用的替代品。
该行正在从DFCUtils类中的静态工厂方法创建的对象实例中的工厂方法创建IDfQuery实现的实例。然后将此对象分配给变量。
所以: -
这是典型的工厂模式,其中方法/函数getQuery()根据规则或配置设置确定要返回的对象类型。当接口的多个实现可用时,这比创建具体类的实例更可取。通常,工厂将像类引导程序一样,在将对象返回给您之前初始化属性。
基本上,您可能有一个工厂方法,其中包含一个条件,例如switch语句,它选择要返回的实现,称为IOC(控制反转): -
public static IDfQuery getQuery(){
IDfQuery returnValue;
switch ( getDayOfWeek() ) {
case "Monday" : returnValue = new MondayQuery(); break;
case "Tuesday" : returnValue = new TuesdayQuery(); break;
case "Wednesday" : returnValue = new WednesdayQuery(); break;
case "Thursday" : returnValue = new ThursdayQuery(); break;
case "Friday" : returnValue = new FridayQuery(); break;
case "Saturday" : returnValue = new SaturdayQuery(); break;
case "Sunday" : returnValue = new SundayQuery(); break;
default: returnValue = null; break;
}
return returnValue;
}
public static String getDayOfWeek(){
return new SimpleDateFormat("EEEE").format( new Date() );
}
答案 2 :(得分:0)
可以使用
IDfQuery query = new DfQuery();
方法
当前的DFC指南明确建议使用com.documentum.com.DfClientX工厂类来获取对象的新实例,例如DfQuery,而不是直接调用构造函数