pattern design:flyweight