命名约定以区分就地突变/创建功能

时间:2013-10-22 18:40:22

标签: naming-conventions in-place

当我编写一些通用编程实用程序代码时,我发现为一个功能同时拥有inplace mutator和new object creator成员函数是好的。

例如,某些表示文件系统中路径的类可能具有“规范化”功能。 Path对象可以将自身变为规范化的对象,或者返回新的规范化路径对象。

class path {
  ...

  void normalize_itself()
  path get_new_normalized_path()

  ...
}

我已经为这个尝试了一些约定,但大多数都不能令人满意。

  1. “正常化!对于像ruby这样的inplace函数 - 很好,但大多数其他语言不支持包含在标识符中的特殊字符。

  2. 'normalize_ip'用于inplace函数 - 因为我的大多数函数用法都在原地,我觉得它太难看了。

  3. 对于非就地功能,
  4. 'get_normalized' - 可以接受,但可以与成员的其他简单getter函数混淆。

  5. 对于非就地功能进行'标准化' - 有时不均匀,并且很容易与其现场对应部分混淆。

  6. 将非现场函数编写为自由函数 - 缺乏IDE的智能感知帮助,有时会出现可见性问题。

  7. 我想找到一些好的/实用的约定来区分两个功能。

1 个答案:

答案 0 :(得分:0)

我认为你的mutator normalize和你的对象创建者的grab_normalized都可以。