函数

1.函数应该短小

  在一个函数下应该是该函数名下的同一级抽象概念层。如果遵循了这个原则那么函数就是短小的。

  代码块里的内容应该只是一个方法调用。

2.函数应该只做一件事,只做好一件事情.

  public String renderPage(Page page){

    if(isTestPage(page)){
      includeSetupAndTestPage(page);
    }
    return page.getHtml();
  }

   函数描述:要渲染界面,先检测page是否为测试界面,如果是就要包含和建立测试界面,无论是否为测试界面都要渲染成html.

3.每一个函数一个抽象级

4 switch天生就是做多件事情的,那可以吧switch的代码隐藏在低的抽象级函数中,或者也可以用多态来实现。

5.为函数取一个描述性的名称 includeSetupAndTeardownPages,includeSuiteSetupPage,

 includeSetupPage等函数名。命名方式一致

6.函数参数

  6.1函数参数的个数越少越好,最理想的函数参数时所需要的输入组合就越多。

  6.2 一元参数

    一元函数就一输入参数,这里主要有两种情形的一种就是有返回值的;另外一种没有返回值,这种情形一般用于事件event.我们要做的就是在命名时区分这两种情形。

      public OutputStream fileOpen(String flie);第一种情形

      public void passwardAttempFailedNTimes(int attemps);第二种情形

  6.3 二元参数

    void writeField(String name,OutStream outStream);二元参数函数比一元参数函数难明白.

    可以减少参数的办法,

      1、其中的某个参数可以在构造时传入.

      2.在其中一个参数的类型里面添加一个一元参数方法,这个方法的参数为另外一个参数。

  6.4 三元参数

     如果没有非常充分的理由的话就不要用三元以及三元以上的参数

  6.5 参数对象

  6.6 参数列表

    可变参数,可变部分的参数类型要一致。

  6.7 给函数命名时要用到动词和关键词,由动词和关键词来描述参数的作用以及顺序。

    assertExpectEqualsActual(Object expected,Object actual);

7 副作用

  函数只做一件事情,如果做了其他的事情一定要在函数名里面说明。

  尽量不要用输出参数,可以用this替换。

8 把执行和查询分割开

  坏的例子:

    void set(String attributeName,String value);

  好的例子:

    if(hasAttribute(name)){

      setAttribute(name,value);

    }

  这里就把查询属性是否存在和设置属性分割开了。

9.使用异常处理错误代码.

  public void deletePerson(Person person){

    try{

      persons.delete(person);

    }catch(Exception e){

      log.err(e);

    }  

  }

  对于函数deletePerson而言,它只处理要错误异常,所以在try,catch,finally后面都没有任何的代码.

  9.1 依赖磁铁

    public enum Error

    {

      OK,

      INVALID

      }

    其它的异常都要依赖Error

10 消除重复

11 实践,用单元测试

  

posted on 2015-10-02 22:41  KEJ  阅读(145)  评论(0编辑  收藏  举报

导航