这是非常糟糕的 OO,但我并不想将其放入任何类型的代码中,除了编码人员自己之外,任何人都可以使用它——除非编码人员进行测试,否则永远不能调用它。
这是我面临的问题:我有一系列外部定义的类。我不能以任何方式修改它们(当然我可以继承或调用它们)。它们有多种名称,但它们不扩展任何超类(Object 除外)或实现任何接口。然而,我对他们每个人的了解是他们有一个名为“调用”的方法。
为了测试,我正在尝试编写将调用这些类的任何一种调用方法的代码。但是,当然,我不能只说 Object.call(),因为调用不是为每个对象定义的。
本质上,这将起作用:
MyClassOne classOne = new MyClassOne();
MyClassOneInput classOneInput = new MyclassOneInput();
classOne.call(classOneInput);
但这不会:
Object clazz = getClassFromElsewhere();
Object clazzInput = getClassInputFromElsewhere();
clazz.call(clazzInput).
显然,由于 Java 是一种强类型语言。
但是,为了让在这个系统上工作的每个人的测试速度提高 10 倍,我能否以某种方式解决这个问题,并以某种方式对任何 Class 和任何 ClassInput 使用“调用”方法?如果传递了错误的类,如果它产生异常或完全中断,我没有问题。
请帮助我违反面向对象。