gpt4 book ai didi

java - 如果类方法/字段只能由类本身访问,它们的封装是否重要?

转载 作者:行者123 更新时间:2023-12-04 08:42:25 26 4
gpt4 key购买 nike

关闭。这个问题是opinion-based .它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.

10 个月前关闭。




Improve this question




简短的上下文:我在 java 中制作了一个俄罗斯方块克隆(所有游戏数据和方法都是一个类),我担心在这种情况下封装是否重要。
几乎所有的字段和方法都被标记为“默认”,没有任何 getter 和 setter,因为用户不应该访问它们。
方法直接操作变量而不传递任何参数,当然只有当它操作的东西是唯一的(不能有两个当前块,两个下一个块列表,两个保持块等等)

  • 如果用户永远不应该获得类的原始成员,我真的需要 getter 和 setter 吗?方法只是直接获取和设置值。如果我有一个想要获取或设置的简单 int,我只是直接执行。
  • 没有返回值,如果每次都应该发生一件确切的事情。例如:如果在生成期间发生碰撞,则立即触发 gameOver() 而不是返回 false,然后在函数之外执行。我选择没有返回值,因为在函数内部执行它要简单得多,而不是用 if 语句包围每个函数调用来做同样的事情。

  • 我是否需要修复其中一些问题,我应该如何保持可读性和性能的稳定性?

    最佳答案

    它不是。
    为什么?理解是一个类的字段和方法正在朝着一个共同的目标协同工作。所以他们不是你必须保护自己的敌人或粗心的 Actor 。
    只是为了防止外部参与者弄乱类不变量,你尽可能隐藏你的字段和方法,只公开那些必要的。
    如果您必须使用 setter 和 getter 在类中的代码中强制执行纪律,那么您需要处理的问题比维护正确的封装(和其他 OO 原则)要大得多。

    关于java - 如果类方法/字段只能由类本身访问,它们的封装是否重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64492642/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com