c – 为什么Google会在成员变量之后命名访问者和变更者?

前端之家收集整理的这篇文章主要介绍了c – 为什么Google会在成员变量之后命名访问者和变更者?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml?showone=Function_Names#Function_Names

Regular functions have mixed case; accessors and mutators match the
name of the variable: MyExcitingFunction(),MyExcitingMethod(),
my_exciting_member_variable(),set_my_exciting_member_variable().

是否隐藏了用户隐藏实现细节的整个封装点,因此他/她不知道accessor / mutator方法是否返回/修改成员变量?如果我更改变量名称或更改它存储在对象中的方式怎么办?

编辑:

如果我有一个实例变量int foo_,它似乎很简单

int foo() const { return foo_; }

但如果我添加另一个返回foo_ 2的方法,我应该命名为bar还是GetBar?

int bar() const { return foo_ + 2; }
int GetBar() const { return foo_ + 2; }

如果我选择GetBar并稍后决定将返回值缓存在另一个成员变量bar_中,我是否必须将该方法重命名为bar?

解决方法

实际上,封装的目的是隐藏类的内部工作,而不是隐藏事物的名称.成员变量的名称无关紧要;它是访问者或变更者提供的间接级别.

拥有一个访问器使您能够在不破坏类与外部世界的接口的情况下更改类的内部工作方式(包括成员变量的名称).该类的用户不必关心实现细节,包括在类中命名的内容,而只关注类的行为,如从外部看到的.

换句话说,一个类的用户不应该依赖Google的样式指南来确定他们是否正在修改成员变量.

原文链接:https://www.f2er.com/c/116213.html

猜你在找的C&C++相关文章