客户端和服务器的相同方法行为略有不同

时间:2016-05-09 07:39:19

标签: java

如果我的类是客户端或服务器端,那么我的大多数类都有不同的行为。 (客户端:gui,服务器:连接东西)但它们也有一些共同的行为。我想知道最好的方法是什么。

班级的示例内容:

public class Example{
    private void commonMethod(){
        //common code
    }

    public void clientMethod(){
        commonMethod()
        //Client code
    }

    public void serverMethod(){
        commonMethod()
        //Server code
    }

}

我想要的是什么:

  • 1方法,用某种方式指定客户端或服务器
  • 可读代码

允许什么:

  • 仍然有3个私有方法:server,common和client

我想避免的事情:

  • 案例(除非可读/简短)
  • 如果

我在考虑的事情:

  • 枚举(指定客户端和服务器)和案例(最好使用无意义的整数或布尔值)
  • 注释(@clientide)(@ serverside)

编辑:

我的类由api加载,示例客户端/服务器方法是init。所以在我的主类中,我需要为所有需要初始化的类运行该方法。

1 个答案:

答案 0 :(得分:0)

如果我是你(如果我理解你的需要),我会使用客户端和服务器类实现的通用接口,中间有一个抽象类:

public interface Example {
    public void method();
}

public abstract class AbstractExample implements Example {

    @Override
    public void method() {
        common();
        implMethod();
    }

    private void common() {
        // common implementation
    }

    protected abstract void implMethod();
}

public class ExampleClientImpl extends AbstractExample {

    @Override
    protected void implMethod() {
        // client implementation
    }
}

public class ExampleServerImpl extends AbstractExample {

    @Override
    protected void implMethod() {
        // server implementation
    }
}

使用这种方法,您还可以在通用/客户端/服务器包或更好的模块中拆分类。