1
我有一個類如下所示的類。我介紹了loghelper函數來創建必要的日誌元素。執行腳本時總是隻能調用一次函數
所有3個功能(開始,功能1,功能2)可以通過控制檯rails r "Foo.start
seperately
我在尋找一個完美的解決方案,以確保@Logger正在執行的任何其他三個函數之前創建並運行只創建一次。
class Foo
def self.loghelper
@logger = Logger.new(stdout)
end
def self.start
self.loghelper
self.function1
self.function2
end
def self.function1
self.loghelper
@logger.info 'function1 foo'
end
def self.start
self.loghelper
@logger.info 'function2 bar'
end
end
'@Logger || = Logger.new(標準輸出)' - 現在也沒關係,它只是會創建一次記錄。 –
'loghelper'函數中還有更多的東西正在發生。沒有更優雅的解決方案嗎? 此外,您在評論中描述的這個運算符是什麼? – Hedge
添加初始化方法,將類方法轉換爲對象方法幷包含單例。這屬於codereview,而不是stackoverflow。 – fotanus