コード例 #1
0
        /// <summary>

        /// Entry point into console application.

        /// </summary>

        static void Main()
        {
            // Arbitrary extrinsic state

            int extrinsicstate = 22;

            FlyweightFactory factory = new FlyweightFactory();

            // Work with different flyweight instances

            Flyweight fx = factory.GetFlyweight("X");

            fx.Operation(--extrinsicstate);

            Flyweight fy = factory.GetFlyweight("Y");

            fy.Operation(--extrinsicstate);

            Flyweight fz = factory.GetFlyweight("Z");

            fz.Operation(--extrinsicstate);

            UnsharedConcreteFlyweight fu = new

                                           UnsharedConcreteFlyweight();

            fu.Operation(--extrinsicstate);

            // Wait for user

            Console.ReadKey();
        }
コード例 #2
0
        public void addCarToPoliceDatabase(FlyweightFactory factory, Car car)
        {
            Console.Write("\nClient: Adding a car to database.\n");

            var flyweight = factory.GetFlyweight(new Car {
                Color = car.Color, Model = car.Model, Company = car.Company
            });

            flyweight.Operation(car);
        }
コード例 #3
0
        public void ClientCode()
        {
            var factory = new FlyweightFactory
                          (
                new Car {
                Company = "Chevrolet", Model = "Camaro2018", Color = "pink"
            },
                new Car {
                Company = "Mercedes Benz", Model = "C300", Color = "black"
            },
                new Car {
                Company = "Mercedes Benz", Model = "C500", Color = "red"
            },
                new Car {
                Company = "BMW", Model = "M5", Color = "red"
            },
                new Car {
                Company = "BMW", Model = "X6", Color = "white"
            }
                          );

            factory.listFlyweights();

            addCarToPoliceDatabase(factory,
                                   new Car {
                Number  = "CL234IR",
                Owner   = "James Doe",
                Company = "BMW",
                Model   = "M5",
                Color   = "red"
            });


            addCarToPoliceDatabase(factory,
                                   new Car
            {
                Number  = "CL234IR",
                Owner   = "James Doe",
                Company = "BMW",
                Model   = "X1",
                Color   = "red"
            });

            factory.listFlyweights();
        }