重构一 重新组织你的函数(Remove Assignments to Parameters)(2)---动机

重构一 重新组织你的函数(Remove Assignments to Parameters)(2)---动机
动机(Motivation)

我只针对[foo被改而指向(引用)完全不同的另一个对象]这种情况来讨论:
    void aMethod(Object foo) {
       foo.modifyInSomeWay();   //that's OK
       foo = anotherObject;   //throuble and despair will follow you
    }
我之所以不喜欢这样的作法,因为它降低了代码的清晰度,而且混淆了pass by value(传值)和pass by reference(传址)这两种参数传递方式。Java只采用pass by value传递方式,我们的讨论也正是基于这一点。

在pass by value情况下,对参数的任何修改,都不会调用端造成任何影响。那些用过pass by reference的人可能会在这一点上犯糊涂。

你可能感兴趣的:(重构一 重新组织你的函数(Remove Assignments to Parameters)(2)---动机)