私が取り組んでいるプロジェクトの依存関係の一部として、いくつかのコアサービスを使用しています。私たちが大きな変更を加えることができないこれらのサービスは、大きな混乱です。呼び出すメソッドに応じて、パラメーター(および戻り値)を別のエンコーディング、ロケール、タイムゾーンに変換する必要があります。
これらのパラメーターは独自のコードの複数の場所で生成されるため、これらの変換は複数の場所で実行されます。私たちがそれらを私たちの側に渡す前に、それらを生成するときがあります。コアサービスでメソッドを呼び出す直前。混乱がコード全体に広がっているので、それを分離するためのレイヤーを導入したいと思います。
私の質問は、そのための最良のアプローチは何ですか。最初は、使用する必要がある各サービス/メソッドに対応するサービス/メソッドを作成することを考えました。これらのメソッドは、単に変換を実行し、コアサービスに委任し、戻り値の変換を実行します。しかし、これはどういうわけか扱いにくいようです。
その後、アノテーションを使用することを考えましたが、使用方法は完全にはわかりません。そして、私が理解しているように、理想的には、呼び出されたメソッドに注釈を付ける必要があります。たとえば、パラメーターを@converToUtc
で注釈し、注釈の実装で変換を行うことができます。これは正しいです?もちろん、これは私たちのコードではなく、現在私たち以外のプロジェクトでこれらのメソッドを使用しているコードを壊すので、これは難しいことです。
この状況に最適なアプローチは何ですか?