春のセール
Flyweight

Flyweight を Swift で

Flyweight 構造に関するデザインパターンの一つで メモリー消費量を低く抑えることで プログラムが膨大な数のオブジェクトを支えることができるようにします

複数のオブジェクト間でオブジェクトの状態の一部を共有することにより これを実現します つまり Flyweight は 異なるオブジェクトによって使われる同じデータをキャッシュすることにより RAM を節約します

複雑度

人気度

使用例 Flyweight の目的はただ一つです メモリー摂取を最小にする もしご自分のプログラムが RAM 不足で困っていない場合は このパターンのことはしばらく忘れて大丈夫です

見つけ方 Flyweight は 新規オブジェクトの代わりにキャッシュされたオブジェクトを返す生成メソッドの存在により識別できます

以下の例は Swift Playgroundsで利用できます。
Playgroundバージョンを作成してくれた Alejandro Mohamadに感謝します。

他言語での Flyweight

Flyweight を C# で Flyweight を C++ で Flyweight を Go で Flyweight を Java で Flyweight を PHP で Flyweight を Python で Flyweight を Ruby で Flyweight を Rust で Flyweight を TypeScript で