我目前正在開發一個基於用戶電子郵件地址域的許多其他提供程序進行身份驗證的中央身份驗證API(在Ruby on Rails中)。有沒有辦法在Ruby中強制實現接口方法?
如果我使用java,這將是一個經典的接口用例。鑑於我正在使用Ruby,我仍然想使用接口構造,但並不確定如何執行接口方法。
這個接口的意圖是有一個authenticated?
方法,至少現在。
一個示例實現。它在本地數據庫中驗證用戶身份。
# internal_user.rb
class InternalUser < User
def authenticated?(email, password)
user = User.find_for_database_authentication(email: email)
user && user.valid_password?(password) && !user.confirmed_at.nil?
end
end
所以,當我對我的API添加更多供應商支持(即實現此接口的多個類),我如何確保這些新類要實現這個接口,換句話說,確保authenticated?
方法已經實施?
看看這篇文章:http://shiroyasha.io/ interfaces-in-ruby.html –
Ruby沒有抽象類,方法或接口,但是如果您確實需要它,它可以爲您提供構建它的工具。但最終YAGNI。 – max