实现骨架类的正确方式是什么?

时间:2015-11-30 09:12:01

标签: java skeleton-code

在Java中实现骨架类的正确方式是什么?

骨架我指的是一个提供骨架实用程序代码的类,但需要一个子类来实现一些部分。

在C ++中,我只是将纯虚方法添加到类中,但Java在接口和类之间有严格的区别,所以这不是一个选项。

基本上,模式应该是这样的:

class Skel { 
  void body() {
    this.action1();
    this.action2();
  }
};

class UserImpl : extends A {
   void action1() {
      impl;
   }

   void action2() {
      impl;
   }
}

/* ... snip ... */

Skel inst = new UserImpl();

/* ... snip ... */

inst.body();

2 个答案:

答案 0 :(得分:3)

Java中的抽象方法类似于C ++中的虚方法。

您需要使用抽象方法声明抽象类Skel,并在子类中实现它们:

<domain-controller>
      <remote host="${jboss.domain.master.address:nnn.nn.nn.88}" port="${jboss.domain.master.port:9999}" security-realm="ManagementRealm"/>
<domain-controller>

答案 1 :(得分:0)

abstract class Skel {abstract void action1();
    abstract void action1();
    abstract void action2();
    public void body() {
        action1();
        action2();
    }
}

class UserImpl extends Skel {
    @Override
    public void action1() {
        //...
    }
    @Override
    public void action2() {
        //..
    }
}

使用Abstract Class甚至更好地提取公共接口,以便您可以引用类。

interface CommonInterface {
    void action1();
    void action2();
    void body(); 
}

abstract class Skel implements  CommonInterface{

    public void body() {
        action1();
        action2();
    }
}

class UserImpl extends Skel {

    @Override
    public void action1() {
        //...
    }

    @Override
    public void action2() {
        //..
    }
}