java - 如何重构超过 50000 行的 Java 文件?
问题描述
我有一个包含超过 50,000 行代码的 java 类。我想重构它并制作多个小类。
我尝试过开设儿童课程,但存在挑战(如果我错了,请纠正我)
一个。我们不能用父对象调用子方法!
湾。此外,我们不能从父级调用子级中的方法。
public class Parent {
public void a(){
System.out.println("Parent :: a");
b(); //point b
}
}
public class Child extends Parent{
public void b(){
System.out.println("Child :: m");
}
}
public class Main {
public static void main(String[] args) {
Parent p = new Parent();
p.b(); //point a
Child c = new Child();
c.a();
}
}
编辑:父类是 @ManagedBean 类(我使用 JSF 和 Spring)。
解决方案
B点
你可以,它被称为模板方法模式。父母可以定义
一个操作的框架,由一些高级步骤组成。这些步骤本身由与模板方法相同的类中的其他辅助方法实现。
辅助方法可以是抽象方法,在这种情况下,子类需要提供具体的实现,也可以是钩子方法,在超类中有空的主体。
突出显示的部分是我更喜欢的。
public abstract class Parent {
public void a(){
System.out.println("Parent :: a");
b();
}
public abstract void b(); // shouldn't necessarily be public
}
public class Child extends Parent {
@Override
public void b(){
System.out.println("Child :: m");
}
}
A点
你不能,它不是父母界面的一部分。要么将方法添加到父级,要么重新考虑为什么在父级引用上调用它。
推荐阅读
- wordpress - Woocommerce rest api 仅显示方括号 []"
- android-studio - 未解决的参考“placeresponse”
- java - 将时间选择器对话框中的按钮设置为始终在左侧?
- node.js - 处理临时访问令牌(和刷新令牌)
- python - python json不断附加相同的键和值
- android - 用于导航应用的 Android Automotive?
- c - 无法在用户定义的函数中调用库函数
- android - REACT-NATIVE 接收器通知并在应用程序终止时播放声音
- symfony - 无法覆盖 framework.disallow_search_engine_index
- python - Python数据框在缺少键的范围内为缺少的行附加默认值的行