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
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