当前位置:  开发笔记 > 编程语言 > 正文

在Java中,让对象的成员公开可用是不是一个坏主意?

如何解决《在Java中,让对象的成员公开可用是不是一个坏主意?》经验,为你挑选了3个好方法。

我的应用程序中有一个数据类.我的应用程序永远不会被用作公共API,我将是唯一一个在我的项目中开发代码的人.

我试图保存每一盎司的处理器和内存电源.

在我的数据类中使我的数据成员具有公共/受保护/默认保护是不是一个坏主意,这样我就不必使用getter了?使用getter需要更多的内存和堆栈的创建......我相信这是不必要的.我在使用getter时可以看到的唯一原因是保护/隐私,但如果我是唯一的编码器而没有其他人会使用我的API,那么不使用getter是一个坏主意吗?

如果这是愚蠢的,请告诉我.



1> KarstenF..:

如果您要更换getters/setter以进行性能/内存优化,那么您采取了错误的方法.这几乎肯定不会是你的应用程序运行缓慢或使用太多内存的原因.

优化的主要罪恶是在你知道你需要之前做到这一点.只有当您有真实的信息显示浪费的时间/内存最多时才进行优化,然后花时间优化它.这背后的想法是,通过在占用总运行时间的80%的代码中削减5%的时间来获得更多,而不是在仅占5%的代码中削减20%的代码.总运行时间.(同样适用于记忆).

此外,我会按照您的建议设计应用程序,因为这意味着可以直接访问某些属性(例如:简单属性),而其他属性(更复杂的派生属性或您不希望暴露的属性)底层类型)将有getter/setter.因此,您将最终获得混合的访问样式,这将更难以维护.



2> Craig P. Mot..:

将成员公开作为优化是一个坏主意.正如其他人所说,它几乎没有任何影响.但是,如果对象是一个行为很少的简单数据结构,那么以这种方式编写就可以了.只要你这样做是为了简单和可读性,而不是性能.



3> Jon Skeet..:

无论如何都很有可能会得到琐碎的getter和setter - 但是对于公共领域,你将失去合同(API)和实现之间的区别.即使这只是一个将使用的API,最好保持松散耦合的IMO.

推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有