私の質問: データの整合性を気にせずに、説明されているクラスをより適切に設計するにはどうすればよいですか?
クラス Player-Container と Player があります。Player-Container は多かれ少なかれ集中化された Player "Data-Container" であり、すべてのスレッドがこのクラスへのポインタを持っています。TBB ライブラリは、読み取り専用および書き込み用のロック メカニズムを提供します。現在の設計を反映する擬似コードがいくつかあります。
Class: Player-Container
Method: CreatePlayer, RemovePlayer , LoginUser, VerifyUser
Class: Player
Method: None its a pure data container
私が開発するほど、「トップレベルコンテナ」にこれらの機能を持たせるのは間違っているように思えますが、コンテナはオブジェクトをロックできることを保証し、並列アクセスがオブジェクトを変更できないようにするため、これを回避していないようです。ユーザー (例: ユーザーが何かをビルドし、このリクエストを 2 回送信すると、リソースが 1 回ではなく 2 回削減されます)。
私がしたいこと:
Class: Player-Container
Method: CreatePlayer, RemovePlayer
Class: Player
Method: LoginUser, VerifyUser,....
私の問題、どうすればそれを達成し、データの整合性を維持できますか? いくつかの入力と提案があるといいでしょう。私を最も悩ませているのは、PlayerContainer が実際に Player クラスについて多くのことを知る必要があることです。属性を変更すると、コンテナで多くのコードを書き直さなければなりません。
不明な点がある場合は、お問い合わせください。