我正在使用一个MainAgent
包含多个内部类的大型 Java 类,它们总共编写了 1500 多行代码,这使得维护这个类变得非常困难。我需要用单独的正常外部类替换这些内部类并在内部实例化它们MainAgent
。
这是一个类似于我的场景的虚拟结构。
class MainAgent {
private List<String> agentNameList;
private List<String> anotherList;
private List<Behavior> behaviourList;
// getters and setters
public MainAgent(){
// instantiate attributes
behavourList.add( new AgentBehaviour());
}
class AgentBehaviour extends Behaviour {
AgentBehaviour() {
agentNameList.add(this.name);
while(conditoin){
cyclicBehaviour();
}
}
private void cyclicBehaviour(){
// access outer class attributes from this method
}
}
}
MainAgent 正在使用几个内部类,例如这个 AgentBehaviour 内部类。我需要将它们移动到单独的文件中,以获得更好的可维护性。由于内部类使用外部类的属性。迁移后,我需要以某种方式访问它们。有人可以建议我任何设计模式或与此问题类似的东西。
PS:如果除了将对象引用传递给在构造函数中MainAgent
创建的每个行为对象之外,那会更好。MainAgent
例子:
behaviourList.add(new AgentBehaviour(this));