当我编写一些通用编程实用程序代码时,我发现为一个功能同时拥有inplace mutator和new object creator成员函数是好的。
例如,某些表示文件系统中路径的类可能具有“规范化”功能。 Path对象可以将自身变为规范化的对象,或者返回新的规范化路径对象。
class path {
...
void normalize_itself()
path get_new_normalized_path()
...
}
我已经为这个尝试了一些约定,但大多数都不能令人满意。
“正常化!对于像ruby这样的inplace函数 - 很好,但大多数其他语言不支持包含在标识符中的特殊字符。
'normalize_ip'用于inplace函数 - 因为我的大多数函数用法都在原地,我觉得它太难看了。
'get_normalized' - 可以接受,但可以与成员的其他简单getter函数混淆。
对于非就地功能进行'标准化' - 有时不均匀,并且很容易与其现场对应部分混淆。
将非现场函数编写为自由函数 - 缺乏IDE的智能感知帮助,有时会出现可见性问题。
我想找到一些好的/实用的约定来区分两个功能。
答案 0 :(得分:0)
我认为你的mutator normalize
和你的对象创建者的grab_normalized
都可以。