我需要编写多个共享通用功能/资源的程序。我想看看是否可以将这些程序的大部分放入库中。场景如下:
ProgA、ProgB 和 ProgC 是使用 libX 的程序。
libX 有一个类 XYZ,它将实例化一个类 ABC。
ProgA、ProgB 和 ProgC 都有 ABC 类的不同实现。
我如何构建我的程序来实现这一点?我曾尝试进行研究,但无法找到答案。提前致谢...
最佳答案
您只需拥有一个基本库接口(interface)ABC
,它提供的接口(interface)允许您的XYZ
类与类A
进行交互, B
和 C
都实现了接口(interface) ABC
。
public interface ABC {
public void method1();
public void method2();
}
然后,您的库类只需要对实现接口(interface) ABC
的对象的引用。
public class XYZ {
private ABC abc;
public XYZ(ABC abc) { this.abc = abc; }
}
然后您的 A
、B
和 C
实现要么实现 ABC
,要么创建实现 ABC 的对象-苍蝇。
对我来说,这听起来很像回调方案。您的库需要一种标准方法来将结果传达给特定的实现。 ABC
基本上是一个事件处理程序接口(interface)。
关于java - 如何从库中调用主程序中的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15804230/