Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            CharacterFactory factory = new CharacterFactory();
            Random           random  = new Random();

            // extrinsic state
            int pointSize = 10;

            Console.WriteLine("Start of object creation " + DateTime.Now.Millisecond);
            // For each character use a new object
            for (int i = 0; i < 1000000; i++)
            {
                int c = random.Next(65, 100);
                pointSize++;
                Character character = new ConcreteCharacter((char)c);
            }
            Console.WriteLine("End of object creation " + DateTime.Now.Millisecond);
            Console.WriteLine("Start of object creation " + DateTime.Now.Millisecond);
            // For each character use a flyweight object
            for (int i = 0; i < 1000000; i++)
            {
                int c = random.Next(65, 100);
                pointSize++;
                Character character = factory.GetCharacter((char)c);
            }

            Console.WriteLine("End of object creation " + DateTime.Now.Millisecond);
            // Wait for user
            Console.ReadKey();
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            // canonical example
            int extrinsicState = 20;

            var factory = new FlyweightFactory();

            var fa = factory.GetFlyWeight("A");

            fa.Operation(extrinsicState--);

            var fb = factory.GetFlyWeight("B");

            fb.Operation(extrinsicState--);

            var unsh = new UnsharedConcreteFlyweight();

            unsh.Operation(extrinsicState--);

            Console.WriteLine();

            // live example
            var fact = new CharacterFactory();
            var cha  = fact.GetCharacter('a');

            cha.Display(100);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// The test first.
        /// </summary>
        private static void TestFirst()
        {
            // Build a document with text
            const string Document = "AAZZBBZB";

            char[]           chars            = Document.ToCharArray();
            CharacterFactory characterFactory = new CharacterFactory();

            // extrinsic state
            int pointSize = 10;

            // For each character use a flyweight object
            foreach (char c in chars)
            {
                pointSize++;
                AbstractCharacter abstractCharacter = characterFactory.GetCharacter(c);
                abstractCharacter.Display(pointSize);
            }

            // Wait for user
            Console.ReadKey();
        }