新手写java我要写2个方法,方法1和方法2在98%的相似度,只是其中一个过程不一样,比如,第一个方法选择approve,第2个方法选择cancel,其他都一样我不想写重复的过程,请问怎么写会比较好了另外,如果我的每一个class都要用到1个login方法,那怎么写?继承login方法的类?谢谢,菜鸟请教

解决方案 »

  1.   

    1、做一个公共的方法,把不一的approve cancel抽出一个接口,作为参数传到这个公共方法里面。
    interface IAproveCancel{
      public void execute();
    }public void commonFunc(IAproveCancel aproveCancel){
    ....
       aproveCancel.execute();
    ....
    }把方法1、方法2都调用commonFun()
    public void func1(){
       commonFunc(new IAproveCancel(){
          public void execute(){
             approve();
          }
       })
    }public void func2(){
       commonFunc(new IAproveCancel(){
          public void execute(){
             cancel();
          }
       })
    }2、可以使用继承,也可以把login的功能抽到公共地方
      

  2.   


    2、可以使用继承,也可以把login的功能抽到公共地方
    也可以把login的功能抽到公共地方,这具体是指什么?
      

  3.   

    1、可以写一个方法,方法加一个参数,根据该参数判断应该调用approve还是cancel
    2、把login单独放在一个类(LoginClass)中,然后方法设为静态的,以后用到时直接用 LoginClass.login()调用就可以了或有不当,仅供参考!
      

  4.   

    没打算扩展的话,直接继承就可以了,
    class A()
    {
     void login(){}
    }
    class B extends A
    {
     void approve(){}
    }
    class C extends A
    {
    void cancel(){}
    }
      

  5.   

    比如login()
    既然都有相似的功能 只不过是方法的实现不一样 
    就设计一个interface,类去实现interface ,然后各自具体实现。
    可以用接口的,就不要去用继承,接口也可以说是一种特殊的继承。
    但是你只可以继承一个类,但是却可以实现N个接口,为什么不用接口呢?
    要面向接口进行开发。你的第一个问题,可以用 命令模式,可以去看看java的23个常用设计模式。