<分区>
我有一个类,我想在使用它时用两个不同的名称来引用它。我能想到的唯一方法是。
class Entrance
def open
puts "the door is open"
end
end
class Exit < Entrance
end
问题是,在这个例子中,我想表示入口和导出是完全相同的东西,而不是导出是入口的一种。有没有更好的方法来表示这个?
<分区>
我有一个类,我想在使用它时用两个不同的名称来引用它。我能想到的唯一方法是。
class Entrance
def open
puts "the door is open"
end
end
class Exit < Entrance
end
问题是,在这个例子中,我想表示入口和导出是完全相同的东西,而不是导出是入口的一种。有没有更好的方法来表示这个?
最佳答案
简单易行:
Exit = Entrance
Ruby 中的类实际上只是类 Class
的对象,这些对象被分配给带有名称的常量。因此,只需让一个新常量引用与旧常量相同的对象即可。
请注意,现在 Exit 和 Entrance 是完全同一个类,您对一个类所做的任何事情都会发生在另一个类上:
2.0.0p0 :009 > Exit.object_id == Entrance.object_id
=> true
注意:虽然这是可能的,但我会更仔细地考虑您的总体架构。入口和导出之间有什么区别吗?他们都是真正的门吗?您的体系结构应该(通常)不需要为类设置别名,除非您有两个您真的想同时使用的同义名称,例如 Page
和 WebPage
(我也建议不要这样做)。
关于ruby - Ruby 中的类名别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21244375/
相关文章:
javascript - 如何正确地将 JS 代码组织成更传统的类结构?
ruby-on-rails - 试图让 Twitter 光标与 api 一起工作
php - 如何使用 {'property-names-like-this' 声明动态 PHP 类 }
java - 旧的 "Java Could not find Main Class"错误
ruby - 在 Nokogiri 对象上使用 ruby "send"作为 page.send(a) 其中 ="at(' div.class-name')"