TechTweet濱田です!今回も前回に引き続きGoFのデザインパターンを紹介します。学生の情報を管理しようと思った場合オブジェクト指向を使ったクラス設計をすると学生オブジェクトが学生の人数分必要になります。いった場合コンストラクターとセッター・ゲッターの簡単なクラスでも1000人学生がいれば1000個のインスタンスが必要になり、インスタンスを保持するためのリソースと保持するためのリソースが学生の人数分必要になります。こんな時に適用するデザインパターンがFlyweightパターンです。日本語で言うと「フライ級」って訳すそうです。今回も3つのチェックポイントにそって説明します。小さくて軽いオブジェクトをいっぱい作りたいけどコストを抑えたい!■背景オブジェクト生成と保持のコストを抑えたい。■効果あらかじめインスタンス化しておいたオブジェクトをグローバル領域に保持しておき必要におうじて検索キーワードで必要な属性値を持つオブジェクトを取得することにより一度に保持するオブジェクトの数を減らす。コードを見てみましょう。//新しく作ってHashMapに格納します。//共有オブジェクトのname変数を書き換えてから返却します。}}実行結果は以下のようになります。熊谷Student@1b67f74オブジェクトが4つあるように見えますが実際のオブジェクトは2つしかない所がFlyweightパターンのミソになります。Javaだとガベージコレクションがしっかりしているのであまり使いどころのないデザインパターンですが、Permanen領域が不足するような場合にFlyweightパターンの発想でオブジェクトの共有化をはかるのも一つの手になると思います。byスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。