Android开发中应使用实例变量还是将变量作为参数传入方法?
两种实现方案的优劣势及选型建议
两种写法本身语法都合法,没有绝对的对错,只看适用场景:
- 第一种(依赖实例变量的无参
sum())
优点:调用时无需传参,代码更简洁,适合方法定位就是专门计算当前类固定两个成员变量之和的场景。
缺点:方法和类实例状态强耦合,复用性极低,只要有其他求和需求就用不了;另外如果实例变量被其他逻辑修改,方法返回值不可控,排查问题时很难定位结果异常的原因,也不方便做独立单元测试。 - 第二种(参数传入的带参
sum(int number1, int number2))
优点:属于纯函数,输出完全由输入参数决定,没有外部依赖,复用性极强,任意两个int值求和都可以调用;结果可预期,调试只需核对入参即可快速定位问题,也非常容易写单元测试用例。
缺点:调用时需要手动传入两个参数,几乎没有其他额外弊端。
通用场景下优先选择第二种传参实现,只有你能100%确定该方法永远只会用于计算当前类固定两个实例变量的和、不会有其他复用需求的时候,才可以考虑第一种实现。
参考代码示例:
int number1; int number2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); number1 = 10; number2 = 20; // 调用第一种方案 sum(); // 调用第二种方案 sum(number1,number2); } // 第一种方案 private int sum(){ return number1+number2; } // 第二种方案 private int sum(int number1,int number2){ return number1+number2; }
内容的提问来源于stack exchange,提问作者user15033829
相关产品推荐
相关产品推荐

