示例#1
0
            /// <summary>

            /// Entry point into console application.

            /// </summary>

            public 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();
            }
        /// <summary>
        /// Entry point into console application.
        /// </summary>
        private 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();
        }
示例#3
0
        public static void addCarToPoliceDatabase(FlyweightFactory factory, Car car)
        {
            Console.WriteLine("\nClient: Adding a car to database.");

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

            // The client code either stores or calculates extrinsic state and
            // passes it to the flyweight's methods.
            flyweight.Operation(car);
        }