懸念事項とサービスは、非常に全く異なる目的で使用される抽象パターンです。
- サービスはクラスに変換される操作/機能です。
- 問題はmixinsです。
私はユーザーを認証したいと言います。これを私は、単一のクラスでの認証のためのロジックのすべてをカプセル化する手助けは別に
class AuthenticationService
def initialize(username, password); end
def run(); end
end
:私だけで簡単にauthenticate(username, password)
機能を書くことができますが、代わりにクラスで、その関数のロジックをカプセル化するために有用であるかもしれません他の認証クラスを作成することができます。
class GoogleAuthenticationService
def initialize(username, password); end
def run(); end
end
class FacebookAuthenticationService
def initialize(username, password); end
def run(); end
end
一方、モジュールの機能を別のクラスに混在させることに懸念があります。ユーザーに権限を与えることに関係していたRailsコントローラがあるとします。ユーザーが承認されているかどうかを確認するbefore_action
を実装する懸念を書くかもしれません。次に、認可チェックを実施したいコントローラにその懸念事項を混在させることができます。
出典
2017-09-27 21:28:22
fny