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

访问者与公共成员

如何解决《访问者与公共成员》经验,为你挑选了2个好方法。

我有一个类,有许多具有读/写访问权限的内置类型成员.我应该让他们成为公共成员并为每个成员提供获取/设置方法吗?结构怎么样?



1> Brian R. Bon..:

拥有访问器(getter)和修饰符(setter)的全部原因是为自己提供额外的间接层.

这种额外的间接级别允许您向公共接口提供变量的只读视图,同时不允许更改数据成员.您仍然可以使用私有或受保护的setter.

Setter允许您在设置值时执行特殊错误检查,验证和更正.例如setDirectory(const std :: string&strPath),如果用户没有指定,则可以确保存在终止斜杠.这可确保您的类状态始终有效.

Getters还可以保护您的成员不会暴露它们以允许它们指向它们.通过不允许从外部指向它们,您可以确保如果您的对象超出范围,它将不会导致崩溃.

getter/setter的额外间接级别还允许您更改它们封装的数据成员.

使用getter,您还可以获得数据的不同视图,例如:getMinutes,当您的数据成员实际存储在几秒钟内时.

这不是使用它们的原因,但使用getter和setter的一个很好的副作用是你可以在修改器中设置一个断点,例如看看它何时被改变.

是否应该使用它们是根据您的需要进行判断.如果您有这么多成员,那么提供getter和设置是一件非常痛苦的事情,您可以考虑将数据成员存储在结构中并在类中使用该结构.您甚至可以立即为整个结构的对象提供getter/setter.



2> Nemanja Trif..:

如果你需要保留不变量,那么是的.否则,不要打扰.

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