私は、再生回数、オーディオ品質、スターレビュー、アルバムアートワークの存在など、いくつかの基準に基づいてアルバムをスコアリングする比較的簡単なアルゴリズムを構築しています。このアルゴリズムに最適なデザインパターンが何であるかを決めるために、私は入力を愛するでしょう。今は、ビルダーがこの問題に最善を尽くしているように感じます。アルバムをスコアリング/ランク付けするためのJavaパターン
- サービスによっては、エンドユーザーが包含または除外するためにどの基準を選択することができ得点を使用しています:
はここにいくつかの詳細です。たとえば、あるサービスでは星のレビューを検討し、別のサービスでは星のレビューに基づいてスコアを付けたくない場合があります。最終的には、彼らが望むが、スコアラーを作るのはユーザーの責任でなければならない。
- 条件の入力範囲は、intからStringまで、ブール値およびその他のタイプです。
- スコアは個々のアルバムごとに計算されます。他のアルバムはアルバムのスコアに影響しません。
- いくつかのベースライン基準を含める必要があります。たとえば、少なくともスコアリング担当者は聴取数とオーディオ品質を使用する必要があります。第1のポイントで参照されるように、これらの最小基準の上に、ユーザは他の基準を含めることができる。 [ALBUM、LISTEN COUNT、音質、STARレビュー、等...]
ビルダーパターンは、それがあろうから、ここでのベストを適用するようだ: