繁体   English   中英

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

[英]How can I create linked invocations on my object in Java to execute a set of instructions by chaining methods together?

我正在学习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界面(在引擎盖下使用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
    }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM