Example #1
0
        public static void Demo()
        {
            Console.WriteLine("\n\t CalcStore.Demo()...");

            // create store of calculators
            CalcPipeline store = new CalcPipeline();

            AbstractCalcFactory f1  = new CalcIntegerFactory(); // create a factory
            AbstractCalc        obj = f1.GetObject("9,3");      // use Factory Design Pattern

            store.Append(obj);
            store.Append(f1.GetObject("9,6"));
            store.Append(f1.GetObject("8,2"));
            store.Append(f1.GetObject("6,4"));
            AbstractCalcFactory f2 = new CalcDoubleFactory();   // create a factory

            store.Append(f2.GetObject("9.6,3.2"));
            store.Append(f2.GetObject("9.2,2.3"));
            store.Append(f2.GetObject("8.4,4.2"));
            AbstractCalcFactory f3 = new CalcDecimalFactory();   // create a factory

            store.Append(f3.GetObject("9.6,3.2"));
            store.Append(f3.GetObject("9.2,2.3"));
            store.Append(f3.GetObject("8.4,4.2"));
            AbstractCalcFactory f4 = new CalcComplexFactory();   // create a factory

            store.Append(f4.GetObject("9,6,3,2"));
            store.Append(f4.GetObject("9,2,2,3"));
            store.Append(f4.GetObject("8,4,4,2"));
            Console.WriteLine(store);   // output store state using ToString()

            Console.WriteLine("\n\t CalcStore.Demo()...done!");
        }
Example #2
0
        public static void Demo()
        {
            Console.WriteLine("\n\t CalcInteger.Demo()...");

            AbstractCalcFactory f = new CalcIntegerFactory(); // create a factory

            AbstractCalc obj = f.GetObject("9,3");            // use Factory Design Pattern

            //AbstractCalc obj = new CalcInteger() { ArgA = 9, ArgB = 3 };
            obj.Add();              // AbstractCalc API usage
            Console.WriteLine(obj); // ToString API usage

            //CalcInteger calcIntObj = new CalcInteger();
            //calcIntObj.ArgA = 9;
            //calcIntObj.ArgB = 3;
            //obj.Add();  // AbstractCalc API usage
            //Console.WriteLine($"{calcIntObj.ArgA} + {calcIntObj.ArgB} = {calcIntObj.CalcResult}");

            Console.WriteLine("\n\t CalcInteger.Demo()... done!");
        }