私は(Rubyで)Webサービスを開発しています。このサービスは、受信するメッセージごとにさまざまなことを行う必要があります。
私のWebサービスがメッセージを処理する前に、さまざまなことを行う必要があります。
- サニタイズ(例:HTML / JSの削除)
- フォーマットを確認してください(例:有効なメールアドレスが提供されていますか?)
- ブラックリストのIPを確認してください
- サードパーティのWebサービスを呼び出す
- プラス10-30他のもの
各ステップ/フェーズがフィルターであるフィルター/複合フィルターアーキテクチャーの実装を考えています。たとえば、私はこれらのフィルターを持つことができます
- 入力フィルターをサニタイズする
- メールフィルター
- 国コードフィルター
- ブラックリストフィルター
各フィルターはメッセージを拒否できるはずなので、フィルターは例外を発生/スローする必要があると考えています。
これにより、多くの柔軟性が得られ、できれば理解しやすいコードベースが得られます。
どのようにこれをしましたか?そして、上記のデザインの長所と短所は何ですか?