私が作成しているアプリケーションの一部のモジュールでは、データセットをフィルター処理して結果をページ分割するオプションがユーザーに提供されます。
すべてが意図したとおりに機能するようになった後、コードの重複を取り除くためにコードをリファクタリングしようとしています。
前述のモジュールはすべて、フィルタリングとページネーションのために同じロジックを共有しています。
そのような重複を取り除くために、どのベストプラクティスに従うべきか疑問に思っています。
今のところ、次の API を使用して「フィルターとページネーション」サービスを作成することを考えていました。
- Paginate(items,predicate,itemsPerPage) 次のオブジェクトを返します: { paginatedItems nrOfPages }
Predicate は、コレクションに渡されたすべてのアイテムに対して呼び出され、ユーザーの好みに基づいてアイテムを選択するために使用されます。
これで、各モジュールがその API を利用できるようになります。
より良い、推奨される方法はありますか?
よろしくお願いいたします。