Flyweightパターンは、既に生成したインスタンスと実質同じであれば、新たに生成せず、他のインスタンスと共有することでリソースを無駄なく使うような構造。
20.Flyweight パターン | TECHSCORE(テックスコア)
main.cppで、
"ABCDE"を2回、"XYZ"を1回、取得しているが、
$ vi main.cpp $ g++ -o main main.cpp framed_string.cpp framed_string_factory.cpp $ ./main create ABCDE frame ******* *ABCDE* ******* get ABCDE frame ******* *ABCDE* ******* create XYZ frame ***** *XYZ* ***** $
2回目の"ABCDE"は1回目の文字列を取得しているだけで、生成はしていない。
Sample/designpattern/flyweight/flyweight/src/flyweight at master · bg1bgst333/Sample · GitHub