[問題] Singleton
最近使用Ruby+SDL寫遊戲
不過有一些部分有點疑問
我曾經聽過Singleton
在類別只會建立一個實體時可以使用
(不一定要用 用了可以省去實體化的麻煩)
像是資料庫,設定,主遊戲之類的類別都只有一個實體)
不過在include之後
使用實體方法要中間加上instance
(以上都是沒問題的...)
不過
為了隱藏Singleton的事實
(就是說不用管是不是Singleton)
我想把instance的字消失
於是就會變成
class C
include Singleton
def initialize
@value
end
def func
return @value
end
def self.func
self.instance.func
end
end
於是直接當成類別方法呼叫了
使用 C.func 取代 C.instance.func
不過若是方法很多這樣一一定義會很麻煩
不知道有沒有什麼方法可以大量定義
因為引數和方法名都不會變
其實我也有個解決方法
只是我不確定會不會很奇怪
(以自己角度?以大家角度?)
就是使用類別變數當實體變數用
不需要產生實體
class C
@@value
def self.func
return @@value
end
end
這種寫法我也不知道該怎麼解釋
能解決問題倒是真的
或許只要能解決問題+能讓人看懂就好?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.36.115.205
推
09/26 00:06, , 1F
09/26 00:06, 1F
→
09/26 00:07, , 2F
09/26 00:07, 2F
→
09/26 00:07, , 3F
09/26 00:07, 3F
→
09/26 15:09, , 4F
09/26 15:09, 4F
→
09/26 16:05, , 5F
09/26 16:05, 5F
→
09/26 16:06, , 6F
09/26 16:06, 6F
討論串 (同標題文章)
Ruby 近期熱門文章
PTT數位生活區 即時熱門文章