繁体   English   中英

我应该使用实例变量还是作为参数传递给方法

[英]Should I use Instance variable or pass as a parameter to method

什么是正确的方法或最好的方法?

1-直接在方法内部编写实例变量

或者

2-从调用的地方传递变量

    int number1;
    int number2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

           
        number1 = 10;
        number2 = 20;


        // call first approach
        sum();

        // call second approach
        sum(number1,number2);

    }


    // First approach
    private int sum(){
        
       return number1+number2;
    }

    // Second approach
    private int sum(int number1,int number2){

        return number1+number2;
    }
}

没有绝对正确的方法,这取决于您的用例。 话虽如此,第二种方式更清洁和可重用。

第一种方法 - sum 方法非常具体且本地化。 它只能做一件事,将number1number2变量相加。

第二种方法 - sum 方法非常通用并且具有绝对的 0 副作用。 我们还可以将它移动到一个 util 文件中,并在整个模块或项目中重复使用它。

这没有正确或错误,这完全取决于您的用例,如果您仅在 sum() 方法中使用 number1 number2,那么您应该采用第二种方法,但是如果您正在更改 number1 和 number2 的值并且您希望更改值在另一种方法然后你应该去第一种方法。

我强烈推荐call second approach ,因为不仅使它看起来更干净而且没有使用外部依赖值,因此只依赖于传递给函数sum的变量。

sum(number1,number2);

因此,最终当 sum 中的操作变得复杂以至于您需要将它们移动到另一个类(如 Utilities)时,使用第二种方法来实现代码的可重用性和灵活性会更有意义。

暂无
暂无

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

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