有没有一种简单的方法来为一组不相关的对象定义一个公共接口?
我有一个序列化数据的类。我可能想将此数据序列化为 JSON 或 YAML。在这种情况下,我可以干净地将 YAML 替换为 JSON 对象吗?我希望我能做如下的事情。这是一个白日梦吗?
FORMATS = {
:json => JSON,
:yaml => YAML,
}
def serialize(data, format)
FORMATS[format].serialize(data)
end
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果类
JSON
和YAML
都具有名为serialize
的类方法,那么您编写的代码应该可以正常工作。但我认为实际存在的方法是#dump。所以,你会:
The code you have written should work just fine, provided that classes
JSON
andYAML
both have class method calledserialize
. But I think the method that actually exists is#dump
.So, you would have:
如果
JSON
和YAML
是已经存在的类或模块,您可以编写:If
JSON
andYAML
are classes or modules that already exist, you can write: