我的应用程序中有一个数据类.我的应用程序永远不会被用作公共API,我将是唯一一个在我的项目中开发代码的人.
我试图保存每一盎司的处理器和内存电源.
在我的数据类中使我的数据成员具有公共/受保护/默认保护是不是一个坏主意,这样我就不必使用getter了?使用getter需要更多的内存和堆栈的创建......我相信这是不必要的.我在使用getter时可以看到的唯一原因是保护/隐私,但如果我是唯一的编码器而没有其他人会使用我的API,那么不使用getter是一个坏主意吗?
如果这是愚蠢的,请告诉我.
如果您要更换getters/setter以进行性能/内存优化,那么您采取了错误的方法.这几乎肯定不会是你的应用程序运行缓慢或使用太多内存的原因.
优化的主要罪恶是在你知道你需要之前做到这一点.只有当您有真实的信息显示浪费的时间/内存最多时才进行优化,然后花时间优化它.这背后的想法是,通过在占用总运行时间的80%的代码中削减5%的时间来获得更多,而不是在仅占5%的代码中削减20%的代码.总运行时间.(同样适用于记忆).
此外,我会按照您的建议设计应用程序,因为这意味着可以直接访问某些属性(例如:简单属性),而其他属性(更复杂的派生属性或您不希望暴露的属性)底层类型)将有getter/setter.因此,您将最终获得混合的访问样式,这将更难以维护.
将成员公开作为优化是一个坏主意.正如其他人所说,它几乎没有任何影响.但是,如果对象是一个行为很少的简单数据结构,那么以这种方式编写就可以了.只要你这样做是为了简单和可读性,而不是性能.
无论如何都很有可能会得到琐碎的getter和setter - 但是对于公共领域,你将失去合同(API)和实现之间的区别.即使这只是一个你将使用的API,最好保持松散耦合的IMO.