アプリについて:これはAndroidアプリです。アプリには2つのコンポーネント/ 2人の異なるユーザーがいます。ゲームをスコアリングするスコアラーと、ゲームの解説を表示するファンです。
各ゲームには、ゲームに関連付けられたデータのセットがあります。 -などのゲーム全体を通じて変化しない固定データ:
各試合には、イベントのリスト/配列も含まれます。各イベントには多くの情報が含まれます。
各ゲームで生成されたこれらのイベントのリストは、サーバーに保存されます。一定期間にわたって、これらの試合ごとのイベントは投手に関する興味深い洞察を生み出します。例:ピッチャーは左打者に対してどのように優れているか、打者はチームが勝ったときにどのように平均が優れているかなど。
必要な問題/提案:
私はデザインパターンにしばらく時間を費やしましたが、何を進めるかを決めることができませんでした。専門家の意見/指示または同様の行で何かをした人からの言葉は非常に役に立ちます。
アーキテクチャは、パターンの山ではありません。それは、絵画の発展を隅々まで回避する、まとまりのある方法で従う一連の原則です。宗教的な熱意はここではあなたの友達ではありません。誤用を実用的に回避することです。
コマンドパターン を思い起こさせるundoについて言及しています。これにこだわるのは、ユーザーが使用できるすべてのコマンドであり、コマンドが実行したことをすべて元に戻す元に戻すコードも必要です。
ただし、元に戻すときに状態を最初から再計算する用意があることにも言及します。つまり、 不変 ルートに進むことができます。イベントを変更するのではなく、元に戻されていないすべてのイベントから状態を再計算するだけです。ここでの摩擦はパフォーマンスです。元に戻すと心的外傷になる可能性があります。ただし、これは、前の状態を保存してイベントの短いリストを再生することで軽減できます。状態を保存する頻度は、 時空のトレードオフ パフォーマンスを調整するために使用するチューニング変数です。