1

我有一个 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() {.........}
  }
  1. 创建一个没有任何数据成员的类。
  2. 每当我必须调用该操作时,我必须创建一个对象并调用它。(静态内部类方法将不起作用,因为辅助方法访问外部类数据。)
4

1 回答 1

2

让私有方法调用其他私有方法是可以的。如果您想提高可读性,请不要使用诸如“helper_”或“operation_”之类的前缀,它们是非标准的,违反命名约定,并且无论如何也不要过多地介绍该方法。只需选择清晰的方法名称,并使用 javadoc 注释记录它们。

任何维护开发人员都应该知道如何分析代码,并且应该能够使用 IDE 来知道方法在哪里被调用,如果从文档和方法名称中不明显的话。

于 2011-12-11T08:56:38.793 回答