java - 如何从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中的新设计模式?
解决方案
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'){}
}
}
不知道能不能解决你的问题!告诉我
推荐阅读
- node.js - 以最少的 http 请求实现聊天
- r - 用另一个 data.table 更新 data.table
- python - 如果我不重置 Python 的 ContextVars 会发生什么?
- maven - 在 3 个不同的分支上发布版本
- python - 在python中计算一系列相关矩阵(如DataFrames、pandas)之间的差异
- c# - C# 三角距离 - 打开 CV/Emgu
- sql - 用逗号分隔案例语句结果
- html - 按钮不会在中间对齐
- java - org.openqa.selenium.SessionNotCreatedException:会话未从断开连接创建:无法连接到渲染器
- vba - 将驱动器链接映射到链接表的 UNC 链接