2つのパターンは同じことを達成しているようです。実世界でのさまざまなユースケースは何ですか? ありがとう
質問する
10535 次
7 に答える
33
Flyweight とは、1 つのものをさまざまな種類で扱うことです。
シングルトンは、単一のものを持っているときです。
たとえば、Flyweight パターンを使用してキーボードの文字を表すことができます。の 1 つのオブジェクトa
、 の 1 つのオブジェクトb
など。どちらも文字ですが、異なる種類の文字です。
対照的に、シングルトンを使用してキーボードを表す場合があります。存在できるのは 1 つだけです。
于 2013-05-25T15:09:52.697 に答える
7
それらは無関係です:
Flyweight は、CPU とメモリを節約する同じ「値」を持つクラスの新しいインスタンスを作成するのではなく、可能な限り (明らかに不変の) クラスのインスタンスを再利用しています。
シングルトンとは、(通常は変更可能な) クラスのインスタンスが 1 つしかない場合です。これは、単一のインスタンスを使用して同じ状態を「見る」すべてのスレッドを容易にするために、マルチスレッド環境でよく使用されます。
于 2013-05-25T15:13:18.337 に答える