public string GetKey(CarFlyweight flyweight) { var elements = new List <string> { flyweight.Manufacturer, flyweight.Model, flyweight.Color }; return(string.Join("_", elements)); }
public CarFlyweight GetFlyweight(CarFlyweight flyweight) { var key = GetKey(flyweight); if (_flyweights.ContainsKey(key)) { Console.WriteLine($"{GetType().Name}: Używamy istniejącego elementu"); return(_flyweights[key]); } Console.WriteLine($"{GetType().Name}: Tworzymy nowy element"); _flyweights.Add(key, flyweight); return(flyweight); }