Pattern: Flyweight
Description
Flyweight pattern is used to reduce the memory and resource usage for complex models containing a large number of similar objects.
Example in .NET :
Flyweight
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 | using System.Text; namespace Flyweight; internal class FlyweightDemo { public static void Demo() { var str = "Andrei Ignat" ; var str2 = string .Intern(str); var str3 = new StringBuilder( "Andrei" ).Append( " Ignat" ).ToString(); Console.WriteLine($ "str == str2: Value {str==str2} Reference {Object.ReferenceEquals(str,str2)}" ); Console.WriteLine($ "str == str3: Value {str==str3} Reference {Object.ReferenceEquals(str,str3)}" ); } } |
Learn More
Source Code for Microsoft implementation of Flyweight
Learn More
}
Homework
Make an exchange rate system. The symbol and names of the currency are the same for all the currencies. The exchange rate is different for each currency. Implement a flyweight that will allow you to create a currency with a symbol and a name and to get the exchange rate for the currency.
Leave a Reply