Example #1
0
        public string GetKey(CarFlyweight flyweight)
        {
            var elements = new List <string>
            {
                flyweight.Manufacturer,
                flyweight.Model,
                flyweight.Color
            };

            return(string.Join("_", elements));
        }
Example #2
0
        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);
        }