有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在一个类上实现单一责任原则,该类实现了一个具有两个责任的接口

我有一个界面,我不一定想在没有充分理由的情况下更改,因为我的客户端程序依赖它:

public interface RMIChatServer extends Remote {
public void connect(RMIChatClient theClient) throws RemoteException;
public void sendMessageToServer(String theMessage) throws RemoteException;
}

我有一个类RMIChatServerImpl来实现这个功能。我想把发送信息的责任转移到另一个班级,遵守单一责任的原则


共 (1) 个答案

  1. # 1 楼答案

    在单独的类中实现这两个方法,然后让您的RMIChatServer实现将调用委托给单独类的实例

    class Connector {
          public void connect(RMIChatClient theClient) throws RemoteException {
          }
    }
    
    class Sender {
          public void sendMessageToServer(String theMessage) throws RemoteException {
          }
    }
    
    class ChatSender implements RMIChatServer {
         Connector connector = new Connector();
         Sender sender = new Sender();
    
         public void connect(RMIChatClient theClient) throws RemoteException {
             return connector.connect(theClient);
         }
    
         public void sendMessageToServer(String theMessage) throws RemoteException {
             return sender.sendMessageToServer(theMessage);
         }
    }
    

    不过,我认为,在这个特殊情况下,你可能试图把单一责任原则推得太远了。连接到服务器是向其发送消息的必要先决条件,因此可以提出一个有效的论点,即它可以被视为与服务器通信的相同责任的一部分,而不是单独的责任