看看下面的代碼:從AS3類的「引用類型」中使只讀屬性變爲真正意義嗎?
private var m_iQuanitity:int;
public function get quantity():int
{
return m_iQuantity;
}
這似乎完全合理。你可以在沒有任何問題的情況下看到外部課程的數量,但是你根本無法解決這個問題。現在把下面的代碼:
private var m_acUsers:ArrayCollection = new ArrayCollection();
public function get users():ArrayCollection
{
return m_acUsers;
}
在你真的不能直接設置變量的話,但你仍然可以做到這一切在陽光下,它還有沒有任何問題。你可以調用它的AddItem和RemoveItemAt函數,這可以做很多工作來「設置」變量。
這樣做還有意義嗎?我知道你可以創建一個重複的ArrayCollection,並且只需將該副本傳回來避免讓它被設置,但是在整個地方做這種純粹用於防禦性編程的東西會浪費大量的CPU時間。所以我想我是問它是否仍然有意義,如何如此,如果我錯過了使用get和set完全的點?謝謝!