方法签名重构

时间:2016-08-15 14:26:36

标签: java refactoring

我有多个用户数据库,我必须搜索。用户可以拥有多个实例,并且应用程序会检查用户是否在不同数据库中是重复的。

因此,每个用户都与客户端相关联,并且字段的填充方式取决于客户端。 (我知道它不对,但这是继承的应用程序)我的想法是通过将客户端作为参数添加到getUserData方法来重构它。然而,我意识到这是防止变化的气味。有许多包装器方法将传递默认值。我还必须远远地遍历调用hiearchy,以便我可以访问客户端对象以传入。这可能是或者五个方法调用,所以我也必须更改它们。在这一点上,应用程序的开发方式(由其他开发人员开发)在这方面非常严格,我希望改进它。

getUserData方法:

public User getUserData(String userId, boolean fullUserRecord, Date userStartDate){
    //retrive userdata from db
    //attach client specific data for user

}

包装器方法的示例:

public User getUserData(String userId,  Date userStartDate){
    getUserData(userId, false, userStartDate)

}

我的问题是,我该如何最好地处理这个问题。目前我正在改变方法签名的兔子洞,但如果需要再次改变,我将不得不做同样的事情,这不会很有趣。

0 个答案:

没有答案
相关问题