什么是getQuery方法?

时间:2009-11-06 14:23:38

标签: documentum dfc

Documentum示例代码从未被深深评论过,所以我的问题是:

这一行是什么意思?

IDfQuery query = DfcUtils.getClientX().getQuery();

3 个答案:

答案 0 :(得分:6)

您可以使用

在Java中安全地替换它
IDfQuery query = new DfQuery();

采用工厂方法的方法出现了旧的Docbasic时代,它受到COM能够或不能做的约束

答案 1 :(得分:5)

对旧问题的回答,但原始海报询问该线的含义,而不是可以使用的替代品。

该行正在从DFCUtils类中的静态工厂方法创建的对象实例中的工厂方法创建IDfQuery实现的实例。然后将此对象分配给变量。

所以: -

  • DfcUtils =包含名为getClientX()
  • 的静态方法的类
  • getClientX()=返回实例的静态工厂方法 一个对象
  • getQuery()=返回的对象中的工厂方法 getClientX(),返回一个实现IDfQuery的对象;
  • query =用于引用新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,而不是直接调用构造函数