假如A方法里有:
   response.put( "requestid", object.getLong( "requestid" ) );
response.put( "module", "friend" );
response.put( "cmd", "getblack" );
response.put("page", pageindex);

   B方法里有:
response.put( "requestid", object.getLong( "requestid" ) );
response.put( "module", "friend" );
response.put( "cmd", "getblack" );
response.put( "counts", counts );
  C方法里有:
                   response.put( "requestid", object.getLong( "requestid" ) );
response.put( "module", "friend" );
response.put( "cmd", "getblack" );
response.put("page", pageindex);
response.put( "counts", counts );
还有很多的 D ,E ,F  方法,不过这些方法的前3 行都是固定并相同的,
剩下的行数就可能不同了(行是指类似response.put( *****,*****);)如果减少代码的重用性,有什么好办法 ?

解决方案 »

  1.   

    像你这个不存在继承的问题 就在一个类里 要提高重用性 那就分离出一个公用的方法来。每个方法里调用
    方法share
     response.put( "requestid", object.getLong( "requestid" ) ); 
    response.put( "module", "friend" ); 
    response.put( "cmd", "getblack" );  A B C 方法里调用share方法 还有什么更好的方法吗
      

  2.   

    写一个控制器。程序里调用A,B,C,D,E……的地方都改为调用这个控制器。public void control(String param){
    response.put( "requestid", object.getLong( "requestid" ) );
    response.put( "module", "friend" );
    response.put( "cmd", "getblack" ); 
    if("A".equals(param)){
    A();
    }else if("B".equals(param)) {
    B();
    }else if("C".equals(param)){
    C();
    }......
    }
      

  3.   

    提取一个private方法,包含前三项,然后其他方法调用该方法
      

  4.   

    在MyEclipse中选中这三行代码抽取出方法就好了,什么不用管了,直接使用