Inheritance: AbstractClass
Esempio n. 1
0
    // Use this for initialization
    void Start()
    {
        ConcreteClassA concreteClassA = new ConcreteClassA("A");
        ConcreteClassB concreteClassB = new ConcreteClassB("B");

        concreteClassA.TemplateMethod();
        concreteClassB.TemplateMethod();
    }
        static void Main()
        {
            AbstractClass c = new ConcreteClassA();
            c.TemplateMethod();

            c = new ConcreteClassB();
            c.TemplateMethod();
        }
Esempio n. 3
0
        static void Main(string[] args)
        {
            Abstract a = new ConcreteClass();
            Abstract b = new ConcreteClassB();

            a.TemplateMethod();
            b.TemplateMethod();
        }
Esempio n. 4
0
        private static void Main(string[] args)
        {
            AbsractClass instance = new ConcreteClassB();

            instance.Operation();
            instance.Method();
            Console.ReadKey();
        }
Esempio n. 5
0
    static void UnitTest()
    {
        AbstractClass theClass = new ConcreteClassA();

        theClass.TemplateMethod();

        theClass = new ConcreteClassB();
        theClass.TemplateMethod();
    }
	// Update is called once per frame
	void UnitTest () 
	{
		AbstractClass theClass = new ConcreteClassA();
		theClass.TemplateMethod();

		theClass = new ConcreteClassB();
		theClass.TemplateMethod();
	
	}
Esempio n. 7
0
        /// <summary>
        /// Entry point into console application.
        /// </summary>
        public void Run()
        {
            var aA = new ConcreteClassA();

            aA.TemplateMethod();

            var aB = new ConcreteClassB();

            aB.TemplateMethod();
        }
Esempio n. 8
0
        public static void TemplatePattern()
        {
            AbstractClass c;

            c = new ConcreteClassA();
            c.TemplateMethod();
            c = new ConcreteClassB();
            c.TemplateMethod();
            Console.Read();
        }
Esempio n. 9
0
    void Start( )
    {
        AbstractClass aA = new ConcreteClassA();

        aA.TemplateMethod();

        AbstractClass aB = new ConcreteClassB();

        aB.TemplateMethod();
    }
Esempio n. 10
0
        public static void TemplateMethodStructural()
        {
            AbstractClass aA = new ConcreteClassA();

            aA.TemplateMethod();

            AbstractClass aB = new ConcreteClassB();

            aB.TemplateMethod();
        }
Esempio n. 11
0
            public void Main()
            {
                AbstractClass aA = new ConcreteClassA();

                aA.TemplateMethod();

                AbstractClass aB = new ConcreteClassB();

                aB.TemplateMethod();
            }
Esempio n. 12
0
        public void TemplateTest()
        {
            Template c;

            c = new ConcreteClassA();
            Assert.AreEqual("具体类A1A2的实现方法", c.TemplateMethod());
            c = new ConcreteClassB();
            Assert.AreEqual("具体类B1B2的实现方法", c.TemplateMethod());
            Console.Read();
        }
Esempio n. 13
0
        public static void Test()
        {
            AbstractClass constractClassA = new ConcreteClassA();
            constractClassA.Select();
            constractClassA.Process();

            AbstractClass constractClassB = new ConcreteClassB();
            constractClassB.Select();
            constractClassB.Process();
        }
Esempio n. 14
0
    static void Main()
    {
        AbstractClass c;

        c = new ConcreteClassA();
        c.TemplateMethod();
        c = new ConcreteClassB();
        c.TemplateMethod();
        Console.ReadKey();
    }
Esempio n. 15
0
        public static void TestTemplateMethod()
        {
            AbstractClassTemplate aA = new ConcreteClassA();

            StringAssert.AreEqualIgnoringCase(aA.TemplateMethod(true), "ConcreteClassA.PrimitiveOperation1()ConcreteClassA.PrimitiveOperation2()");

            AbstractClassTemplate aB = new ConcreteClassB();

            StringAssert.AreEqualIgnoringCase(aB.TemplateMethod(true), "ConcreteClassB.PrimitiveOperation1()ConcreteClassB.PrimitiveOperation2()");
        }
Esempio n. 16
0
        /// <summary>
        /// 模板方法模式
        /// </summary>
        static void TestTemplateMethod()
        {
            AbstractClass c;

            c = new ConcreteClassA();
            c.TemplateMethod();

            c = new ConcreteClassB();
            c.TemplateMethod();
        }
Esempio n. 17
0
        static void Main(string[] args)
        {
            AbstractClass abstractClass = new ConcreteClassA();

            abstractClass.Launch();

            abstractClass = new ConcreteClassB();
            abstractClass.Launch();

            Console.Read();
        }
Esempio n. 18
0
    public static void Main()
    {
        var c1 = new ConcreteClassA();

        c1.TemplateMethod();

        var c2 = new ConcreteClassB();

        c2.TemplateMethod();

        Console.ReadKey();
    }
Esempio n. 19
0
            private static void Test()
            {
                AbstractClass aA = new ConcreteClassA();

                aA.TemplateMethod();

                AbstractClass aB = new ConcreteClassB();

                aB.TemplateMethod();

                Console.ReadKey();
            }
Esempio n. 20
0
        static void TemplateMethodInvoke()
        {
            // 声明抽象类
            AbstractClass ac;

            // 用ConcreteClassA实例化ac
            ac = new ConcreteClassA();
            ac.TemplateMethod();

            // 用ConcreteClassB实例化ac
            ac = new ConcreteClassB();
            ac.TemplateMethod();
        }
Esempio n. 21
0
    /// <summary>
    /// Entry point into console application.
    /// </summary>
    static void Main()
    {
        AbstractClass aA = new ConcreteClassA();

        aA.TemplateMethod();

        AbstractClass aB = new ConcreteClassB();

        aB.TemplateMethod();

        // Wait for user
        Console.ReadKey();
    }
Esempio n. 22
0
        // "AbstractClass"
        public void TestTemplateMethodPattern()
        {
            AbstractClass c;

            c = new ConcreteClassA();
            c.TemplateMethod();

            c = new ConcreteClassB();
            c.TemplateMethod();

            // Wait for user
            Console.Read();
        }
Esempio n. 23
0
    static void Main()
    {
        AbstractClass c;

          c = new ConcreteClassA();
          c.TemplateMethod();

          c = new ConcreteClassB();
          c.TemplateMethod();

          // Wait for user
          Console.Read();
    }
Esempio n. 24
0
 public void TemplateTest()
 {
     {
         var a = new ConcreteClassA();
         a.TemplateMethod();
         var b = new ConcreteClassB();
         b.TemplateMethod();
     }
     {
         var spinach = new Spinach();
         spinach.CookVegetabel();
         var chineseCabbage = new ChineseCabbage();
         chineseCabbage.CookVegetabel();
     }
 }
Esempio n. 25
0
        static void TemplateMethodTester()
        {
            #region sample 1
            AbstractClassTemplate aA = new ConcreteClassA();
            aA.TemplateMethod();

            AbstractClassTemplate aB = new ConcreteClassB();
            aB.TemplateMethod();

            #endregion

            #region sample 2
            DataAccessObject daoCategories = new Categories();
            daoCategories.Run();

            DataAccessObject daoProducts = new Products();
            daoProducts.Run();
            #endregion
        }
Esempio n. 26
0
        /// <summary>
        /// TODO Check if possible to add Oledb file to use with this code.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void templateMethodPatternBtn_Click(object sender, RoutedEventArgs e)
        {
            TemplateMethodBaseClass aA = new ConcreteClassA();

            aA.TemplateMethod();

            TemplateMethodBaseClass aB = new ConcreteClassB();

            aB.TemplateMethod();
            // Wait for user

            Console.Read();

            DataAccessObject daoCategories = new Categories();

            daoCategories.Run();

            DataAccessObject daoProducts = new Products();

            daoProducts.Run();

            // Wait for user
            Console.Read();
        }
Esempio n. 27
0
        static void Main(string[] args)
        {
            //Console.WriteLine("学生A的试卷");
            //TestPaper a = new TestPaperA();
            //a.TestQ1();
            //a.TestQ2();
            //Console.WriteLine("==================");
            //Console.WriteLine("学生B的试卷");
            //TestPaper b = new TestPaperB();
            //b.TestQ1();
            //b.TestQ2();

            AbstractClass c;

            c = new ConcreteClassA();
            c.TemplateMethod();

            c = new ConcreteClassB();
            c.TemplateMethod();



            Console.ReadKey();
        }
Esempio n. 28
0
        public DesignPatternModule()
        {
            Get["/testStatePattern"] = _ =>
            {
                var traficLight = new TraficLight();
                var process     = traficLight.StartTheTraficLight();

                return(process);
            };

            Get["/testNullObjectPattern"] = _ =>
            {
                var dog           = new Dog();
                var dougSound     = "Dog Sound: " + dog.MakeSound() + ", ";
                var unknown       = Animal.Null;
                var noAnimalSound = "No Animal Sound: " + unknown.MakeSound();

                return(dougSound + noAnimalSound);
            };

            Get["/testObserverPattern"] = _ =>
            {
                var observable = new Observable();
                var observer   = new Observer();
                observable.SomethingHappened += observer.HandleEvent;

                var observerValue = observable.DoSomething();

                return(observerValue);
            };
            Get["/testBridgePattern/{currentSource}"] = _ =>
            {
                var currentSource = (string)_.currentSource;

                var myCustomTv = new MyCustomTv();
                switch (currentSource)
                {
                case "1":
                    myCustomTv.VideoSource = new LocalCableTv();
                    break;

                case "2":
                    myCustomTv.VideoSource = new CableColorTv();
                    break;

                case "3":
                    myCustomTv.VideoSource = new TigoService();
                    break;
                }

                var tvGuide   = myCustomTv.ShowTvGuide();
                var playVideo = myCustomTv.ShowTvGuide();

                return(tvGuide + " / " + playVideo);
            };
            Get["/testVisitorPattern"] = _ =>
            {
                var popRock      = new PopRockMusicVisitor();
                var musicLibrary = new MusicLibrary();
                var songs        = musicLibrary.Accept(popRock);

                return(songs);
            };

            Get["/testBuilderPattern"] = _ =>
            {
                var            shop    = new Shop();
                VehicleBuilder builder = new CarBuilder();
                shop.Construct(builder);
                var getBuilderProcess = builder.Vehicle.Show();
                return(getBuilderProcess);
            };
            Get["/testInterpreterPattern"] = _ =>
            {
                const string roman   = "MCMXXVIII";
                var          context = new Context(roman);

                var tree = new List <Expression>
                {
                    new ThousandExpression(),
                    new HundredExpression(),
                    new TenExpression(),
                    new OneExpression()
                };

                foreach (var exp in tree)
                {
                    exp.Interpret(context);
                }

                return("Interpreter Input: " + roman + ", Interpreter Output: " + context.Output);
            };

            Get["/testChainOfResponsabilityPattern"] = _ =>
            {
                var response = "";
                var pamela   = new Director();
                var byron    = new VicePresident();
                var colin    = new President();

                pamela.SetSuccessor(byron);
                byron.SetSuccessor(colin);

                var p = new Purchase(2034, 350.00, "Assets");
                response = pamela.ProcessRequest(p);

                p         = new Purchase(2035, 32590.10, "Project X");
                response += " / " + pamela.ProcessRequest(p);

                p         = new Purchase(2036, 90000.00, "Project Y");
                response += " / " + pamela.ProcessRequest(p);

                p         = new Purchase(2036, 122100.00, "Project Z");
                response += " / " + pamela.ProcessRequest(p);
                return(response);
            };

            Get["/testIteratorPattern"] = _ =>
            {
                var collection = new Collection();
                collection[0] = new Item("Item 0");
                collection[1] = new Item("Item 1");
                collection[2] = new Item("Item 2");
                collection[3] = new Item("Item 3");
                collection[4] = new Item("Item 4");
                collection[5] = new Item("Item 5");
                collection[6] = new Item("Item 6");
                collection[7] = new Item("Item 7");
                collection[8] = new Item("Item 8");

                var iterator = collection.CreateIterator();

                iterator.Step = 2;

                var response = "Iterating over collection:";

                for (var item = iterator.First(); !iterator.IsDone; item = iterator.Next())
                {
                    response += item.Name + " / ";
                }
                return(response);
            };

            Get["/testAdapterPattern"] = _ =>
            {
                var response = "";
                var unknown  = new Compound("Unknown");
                response += " / " + unknown.Display();

                var water = new RichCompound("Water");
                response += " / " + water.Display();

                var benzene = new RichCompound("Benzene");
                response += " / " + benzene.Display();

                var ethanol = new RichCompound("Ethanol");
                response += " / " + ethanol.Display();

                return(response);
            };

            Get["/testCommandPattern"] = _ =>
            {
                var response = "";
                var user     = new User();

                response += user.Compute('+', 100) + " / ";
                response += user.Compute('-', 50) + " / ";
                response += user.Compute('*', 10) + " / ";
                response += user.Compute('/', 2) + " / ";

                response += user.Undo(4) + " / ";
                response += user.Redo(3);
                return(response);
            };
            Get["/testFactoryPattern"] = _ =>
            {
                var response  = "";
                var documents = new Document[2];

                documents[0] = new Resume();
                documents[1] = new Report();

                foreach (var document in documents)
                {
                    response += document.GetType().Name + "--";
                    foreach (var page in document.Pages)
                    {
                        response += " " + page.GetType().Name;
                    }
                }
                return(response);
            };
            Get["/testStrategyPattern"] = _ =>
            {
                var response       = "";
                var studentRecords = new SortedList();

                studentRecords.Add("Samual");
                studentRecords.Add("Jimmy");
                studentRecords.Add("Sandra");
                studentRecords.Add("Vivek");
                studentRecords.Add("Anna");

                studentRecords.SetSortStrategy(new QuickSort());
                response += "Quicksort: " + studentRecords.Sort() + " -- ";

                studentRecords.SetSortStrategy(new ShellSort());
                response += "ShellSort: " + studentRecords.Sort() + " -- ";

                studentRecords.SetSortStrategy(new MergeSort());
                response += "MergeSort: " + studentRecords.Sort();
                return(response);
            };
            Get["/testTemplatePattern"] = _ =>
            {
                var           response = "";
                AbstractClass aA       = new ConcreteClassA();
                response += aA.TemplateMethod();

                AbstractClass aB = new ConcreteClassB();
                response += aB.TemplateMethod();
                return(response);
            };
            Get["/testFacadePattern"] = _ =>
            {
                var response = "";
                var mortgage = new Mortgage();

                var customer = new Customer("Ann McKinsey");
                var eligible = mortgage.IsEligible(customer, 125000);

                response += customer.Name + " has been " + (eligible ? "Approved" : "Rejected");
                return(response);
            };
            Get["/mediatorPattern"] = _ =>
            {
                var response = "";
                var chatroom = new Chatroom();

                Participant paul  = new Beatle("Paul");
                Participant john  = new Beatle("John");
                Participant yoko  = new NonBeatle("Yoko");
                Participant ringo = new Beatle("Ringo");

                chatroom.Register(paul);
                chatroom.Register(john);
                chatroom.Register(yoko);
                chatroom.Register(ringo);

                response += yoko.Send("John", "Hi John!") + " ";
                response += paul.Send("Ringo", "All you need is love") + " ";
                response += paul.Send("John", "Can't buy me love") + " ";
                response += john.Send("Yoko", "My sweet love");

                return(response);
            };
            Get["/testFlyweightPattern"] = _ =>
            {
                var          response = "";
                const string document = "AAZZBBZB";
                var          chars    = document.ToCharArray();

                var factory   = new CharacterFactory();
                var pointSize = 10;

                foreach (var c in chars)
                {
                    pointSize++;
                    var character = factory.GetCharacter(c);
                    response += character.Display(pointSize) + " ";
                }
                return(response);
            };
            Get["/testMomentoPattern"] = _ =>
            {
                var response = "Save Sales, Restore Memento";
                var s        = new SalesProspect
                {
                    Name   = "Noel van Halen",
                    Phone  = "(412) 256-0990",
                    Budget = 25000.0
                };

                var m = new ProspectMemory {
                    Memento = s.SaveMemento()
                };

                s.Name   = "Leo Welch";
                s.Phone  = "(310) 209-7111";
                s.Budget = 1000000.0;

                s.RestoreMemento(m.Memento);

                return(response);
            };
            Get["/testDoubleDispatchPattern"] = _ =>
            {
                var    response = "";
                object x        = 5;
                var    dispatch = new DoubleDispatch();

                response += dispatch.Foo <int>(x);
                response += dispatch.Foo <string>(x.ToString());
                return(response);
            };
            Get["/testTransactionScriptPattern"] = _ =>
            {
                var response = "";
                response += "Booked Holiday: " + HolidayService.BookHolidayFor(1, new DateTime(2016, 12, 31), new DateTime(2017, 1, 5)) + " - ";
                response += "Employes Leaving in Holiday: " + string.Join(", ", HolidayService.GetAllEmployeesOnLeaveBetween(new DateTime(2016, 12, 31),
                                                                                                                             new DateTime(2017, 1, 5)).Select(x => x.Name)) + " - ";
                response += "Employes without Holiday: " + string.Join(", ", HolidayService.GetAllEmployeesWithHolidayRemaining().Select(x => x.Name));
                return(response);
            };
        }