gpt4 book ai didi

java - 如何在 Java 中的对象上创建链接调用,以通过将方法链接在一起来执行一组指令?

转载 作者:行者123 更新时间:2023-12-02 06:23:45 27 4
gpt4 key购买 nike

我正在学习 Java,想要实现方法链接来构建一组执行指令。我听说过一些设计模式,例如构建器或命令模式(顺便说一句,我不知道这些模式是什么,只是在我的学习旅程中听到了它们的名字)。但不确定如果我选择采用 OOP 设计模式是否会使事情变得复杂。

这就是我想要构建的:

假设来说,我的程序中有一个名为 DatabaseOperator 的类。在设计方面,我会继续设计该类,以便使用 DatabaseOperator 的客户端可以使用它,如下所示:

public static void main(String args[]){
DatabaseOperator do = new DatabaseOperator();
DatabaseOperator.getConfigurations("fileName").getAuthenticationDetails("somefile").
joinCluster("clusterName").launchMode("TEST").initiateConnection();
}

我应该如何设计我的 DatabaseOperator 类?我可以使用或者不需要任何特定的设计模式?先感谢您。

最佳答案

您可以通过在不同的方法中返回 this 对象来设计您的 DatabaseOperator 类来支持链式调用。这些方法中的每一个都会更新 DatabaseOperator 的状态,以便于其他方法(例如 initiateConnection())的正确执行。

正如 Jordao 指出的,这看起来更像是 Fluent Interface(在底层使用 Builder 模式)。一种可能的实现是:

public class DatabaseOperator {



private Configuration configuration = Configuration.DEFAULT;
private AuthDetails authDetails = AuthDetails.DEFAULT;

public DatabaseOperator withConfigurationsFrom(String fileName) {
//Get the configurations from the file, and initialize the 'Configuration' object
configuration = initializeFrom(fileName);
return this;
}

public DatabaseOperator withAuthenticationDetailsFrom(String fileName) {
// Get authentication details from the file, and initialize AuthenticationDetails
authDetails = initializeAuthDetailsFrom(fileName);
return this;
}

//.. and so on

public void initiateConnection() {
//Uses configuration and authDetails
}

}

关于java - 如何在 Java 中的对象上创建链接调用,以通过将方法链接在一起来执行一组指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20779239/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com