我遇到了一个问题,我在代码库中一次又一次地遇到这个问题。让我试着解释一下。
项目A - 包x.y - 第1类(已包含许多功能的抽象类) 项目A - 包x.y.z.w - 第2类扩展了第1类(通过调用super来实现缺少的方法并在第1类中使用了许多方法)
我需要将类2提取到一个单独的项目(项目B)中而不依赖于项目A.项目A仍然包含需要项目B运行的代码,因此项目A将依赖于项目A项目B. 请记住,代码库是巨大的,我无法更改类1中的任何内容,因为它在任何地方都使用,并且它也非常复杂,因为它实现了多个接口,扩展了JPanel等。
依赖注入模式不起作用,因为我没有从注入依赖项的位置进行实例化。
我真的很努力地做到这一点。任何想法/帮助将不胜感激。
答案 0 :(得分:0)
如果我理解正确,您的目标是:
Goal 1: Project A depends on Project B
Goal 2: Project B does NOT depend on Project A
您的条件是:
1: Class 1 in Project A
2: Class 2 in Project B extends Class 1
您不能从类路径上没有的类继承。可能的解决方案是:
Step 1: Create a new abstract class Class3 in PackageB;
Step 2: Move all the code out of Class1 in it; and
Step 3: Have both Class1 (still abstract) and Class2 extend it.
如果我没有正确理解你的问题,请纠正我。