To save the large amounts of space required by glyphs, both the characters and the glyph contex are frequently implemented as flyweights. In a typical text document there are thousands of characters. If each character was represented by a unique glyph, the document would soon become extremely large. Similarly if the graphic context of each character was stored along with the character we would soon have documents far beyond the size that we would want. The flyweight implementation of a document has one glyph for each character called a concrete Flyweight .
Rows consist of pointers to the character glyphs.
The pointers are called flyweights . Rows and Columns are unshared concrete flyweights. When a new character is inserted into a row, a glyph factory which contains the concrete flyweights, generates the flyweight for that character. The following diagram represents this structure. The class Character is a glyph, so inherits all of the properties of glyph.