2

当我编写一些通用的编程实用程序代码时,我发现为一个功能同时拥有就地 mutator 和新的对象创建者成员函数是件好事。

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

class path {
  ...

  void normalize_itself()
  path get_new_normalized_path()

  ...
}

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

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

  2. 'normalize_ip' 用于就地函数 - 因为我的大多数函数用法都是就地的,我认为它太丑陋了。

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

  4. 非就地功能的“标准化” - 有时不统一,并且很容易与其就地对应部分混淆。

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

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

4

1 回答 1

0

我认为normalize对于您的 mutator 和grab_normalized您的对象创建者来说会起作用。

于 2014-08-07T06:54:43.773 回答