如果我的类是客户端或服务器端,那么我的大多数类都有不同的行为。 (客户端:gui,服务器:连接东西)但它们也有一些共同的行为。我想知道最好的方法是什么。
班级的示例内容:
public class Example{
private void commonMethod(){
//common code
}
public void clientMethod(){
commonMethod()
//Client code
}
public void serverMethod(){
commonMethod()
//Server code
}
}
我想要的是什么:
允许什么:
我想避免的事情:
我在考虑的事情:
我的类由api加载,示例客户端/服务器方法是init。所以在我的主类中,我需要为所有需要初始化的类运行该方法。
答案 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
}
}
使用这种方法,您还可以在通用/客户端/服务器包或更好的模块中拆分类。