我有一个类,我想在使用它时用两个不同的名称来引用它.我能想到的唯一方法就是这样做.
class Entrance
def open
puts "the door is open"
end
end
class Exit < Entrance
end
Run Code Online (Sandbox Code Playgroud)
问题是,在这个例子中,我想表示入口和出口是完全相同的东西,而不是Exit是一种入口.有没有更好的方式来代表这个?
简单易用:
Exit = Entrance
Run Code Online (Sandbox Code Playgroud)
Ruby中的类实际上只是类的对象,Class它们的名称分配给常量.因此,只需要一个新常量引用与旧常量相同的对象.
请注意,现在退出和入口是完全相同的类,并且您对其中的任何操作都会发生在另一个上:
2.0.0p0 :009 > Exit.object_id == Entrance.object_id
=> true
Run Code Online (Sandbox Code Playgroud)
注意:虽然这是可能的,但我会更仔细地考虑您的一般架构.他们在入口和出口之间有什么区别吗?它们都只是真正的门吗?你的体系结构应该是这样的,除非你有两个你真正想要同时使用的同义名称,否则(通常)类不需要别名Page,WebPage(和我也建议不要这样).