首页 > 解决方案 > 如何从java中不同包中的同一对象调用方法?

问题描述

我有不同的包,比如 com.pack01 , com.pac02 等等。对于我的一个对象 A ,我每次都需要这个对象来创建基于版本参数的东西。

例如,如果我有版本“01”,那么它应该从 com.pack01 创建那个对象。如果我有版本“02”,那么它应该从 com.pack02so 创建那个对象,依此类推。

一旦我得到这个对象,我会从中调用一个 create() 方法。

我正在考虑在这里使用工厂模式,但很困惑如何从中获取特定类型的对象,因为我无法每次都返回一个对象,因为我需要对其执行 create() 的进一步操作?

有没有其他方法可以实现预期的功能?

当前示例代码:

A a = new  A();
a.create();

预期代码:

if(version.equals("01"))
com.pack01.A a = new com.pack01.A();
a.create();

我需要根据版本以更好的方式来做。任何人都可以提出更好的做法,因为我是java中的新设计模式?

标签: javadesign-patternsfactory

解决方案


class Factory{
    // first solution
    public Object getInstanseOfA(String version){
          if(version ==' ---  '){}
          else if (version == '111'){}
    }
    // second solution
    public static String version='1.0';
    public Object getInstanseOfA(){
          if(this.version ==' ---  '){}
          else if (this.version == '111'){}
    }
}

不知道能不能解决你的问题!告诉我


推荐阅读