我正在尝试实现一个库,该库提供了一种与服务器通信的统一方式,该服务器正在将其 API 调用从一个版本更改为另一个版本。我计划以这种方式实现它:
连接.rb:
class Connect
def self.getConn(params)
case params[:version]
when '4.0' then return Connect4.new(params)
when '5.0' then return Connect5.new(params)
else 'Version not supported.'
end
end
end
class Connect4
def initialize(params)
# Code for v4.
end
end
class Connect5
def initialize(params)
# Code for v5.
end
end
测试.rb:
require 'connect'
conn = Connect.getConn(:version => '4.0')
puts conn
我认为它会起作用,但我对 ruby 还是很陌生,可能有一些我没有考虑的问题。是否有处理此类“挑战”的最佳实践?