在使用工厂模式配置多实例的SFTP配置信息时,你可以创建一个工厂类来负责创建具体的SFTP连接器实例,并在实例化时传递相应的配置信息。以下是一个简单的示例:
首先,定义一个抽象的SFTP连接器接口:
java
Copy code
public interface SftpConnector {
? ? void connect();
}
然后,创建一个具体的SFTP连接器实现类,该类实现了抽象接口:
java Copy code
public class ConcreteSftpConnector implements SftpConnector {
? ? private String host;
? ? private int port;
? ? private String username;
? ? private String password;
? ? private int timeout;
? ? public ConcreteSftpConnector(String host, int port, String username, String password, int timeout) {
? ? ? ? this.host = host;
? ? ? ? this.port = port;
? ? ? ? this.username = username;
? ? ? ? this.password = password;
? ? ? ? this.timeout = timeout;
? ? }
? ? @Override
? ? public void connect() {
? ? ? ? // 进行连接逻辑...
? ? ? ? System.out.println("Connected to SFTP server: " + host + ":" + port);
? ? }
}
接下来,创建一个SFTP连接器工厂类,用于根据不同的配置信息创建具体的SFTP连接器实例:
java
Copy code
public class SftpConnectorFactory {
? ? public static SftpConnector createConnector(String host, int port, String username, String password, int timeout) {
? ? ? ? return new ConcreteSftpConnector(host, port, username, password, timeout);
? ? }
}
最后,你可以使用工厂类来创建具体的SFTP连接器实例,并进行连接操作:
java
Copy code
public class Main {
? ? public static void main(String[] args) {
? ? ? ? // 创建第一个SFTP连接器实例
? ? ? ? SftpConnector connector1 = SftpConnectorFactory.createConnector("example.com", 22, "user1", "password1", 3000);
? ? ? ? connector1.connect();
? ? ? ? // 创建第二个SFTP连接器实例
? ? ? ? SftpConnector connector2 = SftpConnectorFactory.createConnector("test.com", 2222, "user2", "password2", 5000);
? ? ? ? connector2.connect();
? ? }
}
通过工厂模式,你可以根据不同的配置信息创建多个SFTP连接器实例,并灵活地使用它们。