[英]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.