首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在拥有的类中使用getter有什么好处吗?

在拥有的类中使用getter有什么好处吗?
EN

Stack Overflow用户
提问于 2015-07-28 14:36:37
回答 4查看 58关注 0票数 1

我在一些遗留代码中发现了以下内容:

代码语言:javascript
代码运行次数:0
运行
复制
public class MyClass
{
    private boolean myBool;

    public boolean getMyBool()
    {
        return myBool;
    }

    public void otherMethod()
    {
         // some other calculations
         boolean something = this.getMyBool();
         // some other calculations
    }
}

我是不是漏掉了什么?使用getMyBool()而不仅仅是直接调用myBool有什么好处吗?

因为在我看来,如果getMyBool()的行为发生了变化,那么这个类在调用这个方法时就会背叛自己。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-07-28 14:45:10

其他类可能继承此类,并使用另一个实现覆盖getMyBool()

  • 延迟初始化
  • 使用静态属性
  • 使用一些复杂的业务逻辑
  • ..。

另一个用例是当您想用方面来测试代码时。用于更改getter行为或记录getter调用.

票数 1
EN

Stack Overflow用户

发布于 2015-07-28 14:42:07

这不是背叛。如果您使用这个类,并且在类之外使用getter/setter,那么更改功能也不是背叛。

想象一下阶级的人。这类具有年龄,您希望将小于零的值设置为零。您只需将setter和/或getter更改为适当的行为。

你真的不想把它从零下改为零下,“有时”。这是原因,您应该在类中调用setter/getter。

票数 0
EN

Stack Overflow用户

发布于 2015-07-28 14:43:11

如果getMyBool是一个纯getter,也就是说,它只检索字段,那么对它进行方法调用就没有什么价值了。吸气器和领域之间的行为没有变化。

如果它不是经常发生的纯getter,那么方法调用是可以接受的。仅仅使用getter并不能封装程序的全部意图。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31679478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档