Sebagai bagian dari dependensi yang dimiliki proyek yang saya kerjakan, kami menggunakan beberapa layanan inti. Layanan-layanan ini, yang kami tidak bisa lakukan perubahan besar, adalah kekacauan besar. Bergantung pada metode yang kita gunakan, kita perlu mengonversi parameter (dan mengembalikan nilai) ke penyandian, lokal, dan zona waktu yang berbeda.
Karena kami membuat parameter ini di banyak tempat dalam kode kami sendiri, kami melakukan konversi ini di banyak tempat. Beberapa kali di mana kita menghasilkan mereka, sebelum melewati mereka di pihak kita; beberapa kali tepat sebelum memanggil metode dalam layanan inti. Jadi kekacauan menyebar ke seluruh kode kita, dan saya ingin memperkenalkan layer untuk mengisolasinya.
Pertanyaan saya adalah apa pendekatan terbaik untuk itu. Awalnya saya berpikir untuk hanya membuat layanan / metode yang sesuai dengan setiap layanan / metode yang perlu kita gunakan. Metode-metode ini hanya akan melakukan konversi, mendelegasikan ke layanan inti dan melakukan konversi nilai kembali. Tapi sepertinya ini agak sulit.
Kemudian saya berpikir untuk menggunakan anotasi, tetapi saya tidak sepenuhnya yakin bagaimana menggunakannya. Dan seperti yang saya pahami, idealnya saya perlu menjelaskan metode yang dipanggil. Sebagai contoh, saya dapat membuat anotasi dengan parameter @converToUtc
, dan melakukan konversi dalam implementasi anotasi. Apakah ini benar? Tentu saja, ini sulit karena ini bukan kode kami dan itu akan memecahkan kode yang saat ini menggunakan metode-metode itu di proyek selain dari kami.
Apa pendekatan terbaik untuk situasi ini?