假設我有一個類中的靜態變量:靜態變量一生
class Example {
public static var one:One = new One;
}
威爾「一」我程序啓動(即使我從來沒有使用它)被實例化,或者只是在第一時間我用它?
假設我有一個類中的靜態變量:靜態變量一生
class Example {
public static var one:One = new One;
}
威爾「一」我程序啓動(即使我從來沒有使用它)被實例化,或者只是在第一時間我用它?
我想,如果你問的問題,那是因爲你只需要創建的對象,如果你使用它。在這種情況下,你應該做的是實現對象的惰性創建。類似的東西會工作:
class Example {
private static var one_:One = null;
public static function get one():One {
if (!one_) one_ = new One();
return one_;
}
// If the variable is not read-only, you also need a setter:
public static function set one(v:One):void {
one_ = v;
}
}
現在你確信,如果你直接引用它在代碼中使用Example.one
到one
,纔會創建。
你第一次使用類Example
它會在啓動。但是這個班級應該有「聯繫」。
imports
與此類所以,如果這個類編譯的,它會在啓動時實例化。
糾正我,如果我錯了。
其實它真的很容易測試:)
一個簡單的單身人士吧?我聽說過使用Singleton並不是一個好習慣。但我不明白爲什麼。 – Fabricio
有沒有一般的規則,這取決於你想要做什麼。但是,這不是一個單例模式,只是一個靜態變量(根據您的需要,這也可能是一個好主意,也可能不是一個好主意)。 –