什么更好,通过方法传递的类或局部变量的属性? [关闭]

问题描述 投票:2回答:2

如果变量通过多个方法传递,但只在最后一个方法中使用;将此变量声明为类的属性是否更好?

我觉得通过例子可以更好地问这个问题,所以: 示例#1

public class eg1 {
    private int circleSize;

    void a() {
        circleSize = ...
        b();
    }

    void b() {
        ...
        c();
    }

    void c() {
        ... circleSize ...
    }
}

例#2

public class eg2 {
    void a() {
        int circleSize = ...
        b(circleSize);
    }

    void b(int circleSize) {
        ...
        c(circleSize);
    }

    void c(int circleSize) {
        ... circleSize ...
    }
}

是否有某种方式应该使用?为什么?

编辑:似乎这个问题是情境的,基于意见的。无论采用哪种方式,都有一些好处。

java class
2个回答
1
投票

如果您只想在一个方法中使用该变量,那么您无需将其设置为私有,这会将其暴露给所有其他方法。通过选择传递变量而不是将其设为私有:

  1. 您避免将其暴露给其他方法
  2. 您的代码更易于阅读,因为您不会希望查看变量的位置
  3. 您避免为您的班级提供不必要的属性

1
投票

答案非常广泛,但通常你可以遵循得墨忒耳法则:

  • 每个单位应该对其他单位的知识有限:只有与当前单位“密切”相关的单位。
  • 每个单位只应与其朋友交谈;不要和陌生人说话。
  • 只与你的直接朋友交谈。

https://en.wikipedia.org/wiki/Law_of_Demeter

因此,在这种特殊情况下,请使用参数。由此产生的应用程序将更易于理解和更容易理解。

© www.soinside.com 2019 - 2024. All rights reserved.