1

這是一個關於吸氣劑的常見問題。本機/計算屬性吸氣劑的最佳實踐

假設我有一個User類2個機屬性firstnamelastname和一個動態的計算性能fullname

爲這些人命名吸氣劑的最佳方式是什麼?

我很好:

user->get_firstname(); 
user->get_lastname(); 
// or 
user->firstname; 
user->lastname; 

但我更關心的是:

user->get_fullname(); 
// or 
user->fullname; 

,因爲我們覺得它只是一個原生屬性,但它不是。 fullname屬性可以被讀取但不能寫入,沒有setter。我們不能操縱它,就好像它是一個本地屬性。

我想能夠區分這些屬性(本機vs動態計算),我應該怎麼做?

來自現有框架的例子以及它們如何處理這個問題是值得歡迎的。

回答

0

我會說它應該被命名爲與其他獲得者相同。無論是基本屬性還是計算值,都歸結爲我希望從最終用戶抽象出來的具體實現。全名可能是今天的計算值,但可能在未來它不會。我希望在未來可以在一個地方自由地改變它,但保持公共界面一致。

0

我不確定你的問題到底是什麼。

但是,您不需要爲不希望擁有它們的字段創建setter。 讓我舉一個C#示例:

public String fullname { get; set; } 
public String lastname { get; } 

這會工作。