ホームページ >バックエンド開発 >PHPチュートリアル >PHP デザイン パターン - Flyweight Pattern_PHP チュートリアル
免責事項: この一連のブログの参考資料は、Cheng Jie 著の「Dahua Design Pattern」です。
Flyweight モードは、共有オブジェクトを使用してメモリ使用量を最小限に抑え、できるだけ多くの同様のオブジェクトと情報を共有します。重複により許容できないほど大量のメモリを使用するだけの多数のオブジェクトに適しています。通常、オブジェクト内の状態の一部は共有できます。一般的な方法は、それらを外部データ構造に置き、必要に応じて Flyweight に渡すことです。
UML クラス図:
性格分析:
Flying Factory ロール (FWFactory): BlogModel オブジェクトを作成および管理します。
すべての特定のフライウェイト親インターフェイスの役割 (BolgModel): 外部状態を受け入れて動作します。
特定の flyweight ロール (JobsBlog): 内部オブジェクトのストレージ容量を増やすための特定の変更点。
コードの実装:
リーリー
リーリー
利点:
1. ランタイムオブジェクトインスタンスの数を減らし、メモリを節約します
2. 多くの「仮想」オブジェクトのステータスを一元管理します
短所:
一度実装すると、単一の論理実装は独立した個別の動作を持つことはできません
該当するシナリオ:
クラスに多数のインスタンスがあり、これらのインスタンスを同じメソッドで制御できる場合、Flyweight パターンを使用できます。