我有一个 MineSweeper 程序,我面临类似的情况。,
我的问题在哪里?
class operation{
<Data's needed for all operations>
/*(Each operation needs all the datas.)*/
public mainOperation(){ // user can call this mainOperation whenever they want to do some work.
operation_ABC();
operation_LMN();
}
private void operation_ABC(){
helper_DEF(); //This helper does partial work of ABC()
helper_IJK(); //This helper does remaining work of ABC()
}
private void DEF(){..//access and work on data..}
private void IJK(){..//access and work on data..}
private void operation_LMN(){
helper_OPQ();
< some work on data >
helper_RST();
}
private void helper_OPQ(){..//access and work on data...}
private void helper_RST(){..//access and work on data...}
}
我需要的?
我需要的是某种方法来对方法进行分组并降低 helper_DEF 和 helper_IJK 在 operation_ABC 中的可见性。在这里,我将其明确命名为 operation_ 或 helper_ 但我程序中的真实场景是....
private void backEndActionTaker(){
<type: private void > initializeMinePlacer();
<type: private void > mineValueAssigner();
}
可读性问题:需要阅读/扩展此代码的开发人员肯定会发现很难分离操作和帮助程序,因为乍一看,一切似乎都是一个操作。
我工作了什么? 我计划在没有任何数据的情况下创建内部类,但我觉得有两件事很不安。
class operation_ABC{
exec_ABC(){
helper_1();
helper_2();
}
private helper_1(){......//Access outer class data...}
private helper_2() {.........}
}
- 创建一个没有任何数据成员的类。
- 每当我必须调用该操作时,我必须创建一个对象并调用它。(静态内部类方法将不起作用,因为辅助方法访问外部类数据。)