O flyweight
é um padrão que tem como objetivo minimizar o uso de memória ou custos computacionais compartilhando a maior quantidade de dados entre objetos similares.
Quando queremos minimizar o uso de recursos computacionais, compartilhando os dados ou os objetos.
Considere uma loja que vende chás. A pessoa responsável por fazer o chá geralmente faz mais do que uma xícara de chá e guarda o resto para vender para outros consumidores, poupando assim recursos como gás, entre outros. O padrão flyweight
é exatamente sobre isso, poupar recursos.