2
我想創建一個Time
的子類,比如說MyTime
,這樣我就可以定義(特別是與格式相關的)方法而不會污染Time
類。初始化'Time'的子類
class MyTime < Time; end
有關Time
定義了一些構造方法,我可以在MyTime
像這樣使用它們:
MyTime.now
但有時我需要創建一個基於Time
實例的MyTime
一個實例。例如,我想基於擁有的MyTime
一個實例:
File.mtime(path_to_some_file)
這是一個Time
實例。構造函數Time#new
不接受Time
實例,所以我不能使用它。我該怎麼做?
你可以使用組合而不是繼承嗎? 'MyTime'可以簡單地保存'Time'類的實例,並將所有調用委託給它,這可能是一個更詳細的實現;但它可以讓你靈活地滿足'File.mtime(...)'的需求。 –
@HunterMcMillen如果這是唯一的出路,那將是最後的手段,但如果可能的話,我想避免這種情況。 – sawa