2013-10-22 58 views
1

當我編寫一些通用編程實用程序代碼時,我發現同時具有inplace mutator和新對象創建者成員函數是一種功能。命名慣例區分就地突變/創建函數

例如,表示文件系統中路徑的某個類可能具有「標準化」功能。路徑對象可能會將自身變爲規範化路徑對象,或者返回新的規範化路徑對象。

class path { 
    ... 

    void normalize_itself() 
    path get_new_normalized_path() 

    ... 
} 

我已經嘗試了一些約定這一個,但其中大多數都不能滿足。

  1. '正常化!'對於像ruby這樣的就地功能 - 很好,但大多數其他語言不支持將特殊字符包含在標識符中。

  2. inplace函數'normalize_ip' - 因爲我的大部分函數用法都是就地的,所以我認爲它太難看了。

  3. 'get_normalized'用於非inplace函數 - 可以接受,但可以與其他簡單的getter函數混淆。

  4. 非歸位函數的「歸一化」 - 有時不統一,容易與其位置計數器部分混淆。

  5. 將非inplace函數編寫爲自由函數 - 缺少IDE的智能幫助,有時會出現可見性問題。

我想找到一些好的/實用的慣例來區分兩個功能。

回答

0

我認爲normalize爲你的mutator和grab_normalized爲您的對象創建者將工作。