次のヘルス クラブのシナリオがあります (C++ BTW でコード化されています)。
ランダムな Guest オブジェクトと Trainer オブジェクトを作成したい (そのため、どちらもランダムに生成された名前になりますが、ゲストの健康データもランダムになります)。
さまざまな複雑さのさまざまな乱数発生器をたくさん作成できるようにしたいと考えています。
したがって、両方ともランダムな姓/名ジェネレーター機能が必要であることは明らかですが、このコードを 1 か所に保持する方法がわかりません。
ランダムな生成を必要とするすべてのオブジェクトが使用できるすべての生成メソッド (たとえば、generateForename()) を含む抽象ファクトリを作成できます。しかし、トレーナーは、健康データとは関係なくても、健康データを生成できる工場にアクセスできる必要がありますか?
また、クラスごとに抽象ファクトリを用意することも考えました。1 つは人用、1 つは顧客用、1 つはゲスト用で、オブジェクトに適切なファクトリを渡してスーパークラスを生成させますが、状況によっては複雑すぎるように思えます。
私はこれにかなり慣れていないので、私のデザインが少しずれている場合はご容赦ください。
あなたたちは何を提案しますか?