我想在埃菲爾做一個不可變的POINT
類。下面的代碼是否定義了一個? x
和y
字段的{NONE}
可訪問性足夠嗎?我可以寫一些類似於x = x'
的類,或者我還能如何實現不變性?在埃菲爾不可變的類
class POINT
create
make
feature {NONE}
x: DOUBLE
y: DOUBLE
feature
make (x_: DOUBLE; y_: DOUBLE)
do
x := x_
y := y_
ensure
set: x = x_ and y = y_
end
feature --accessors
get_x: DOUBLE
do
Result := x
ensure
Result = x
end
end
記根據埃菲爾風格指南訪問者是名詞,因此沒有獲得前綴。它會讓你的代碼更易於閱讀(幾乎所有語言都是如此)。但是當你使屬性自己的訪問者在下面看到答案時,它也不會有get前綴。 –