Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            AbstractClass instance = new ConcreteClass();

            instance.TemplateMethod();

            Console.ReadLine();
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            var abstractClass = new ConcreteClass();

            abstractClass.TemplateMethod();

            Concrete2Class concrete2Class = new Concrete2Class();

            concrete2Class.TemplateMethod();
        }
Ejemplo n.º 3
0
    private void ExampleTemplateMethod()
    {
        NotUseTM.RookieTeacher poorTeacher = new NotUseTM.RookieTeacher();
        poorTeacher.Teach();

        UseTM.RookieTeacher smartTeacher = new UseTM.RookieTeacher();
        smartTeacher.Teach();

        TemplateMethod.ConcreteClass concreteClass = new TemplateMethod.ConcreteClass();
        concreteClass.TemplateMethod();
    }
Ejemplo n.º 4
0
        /// <summary>
        /// 模板方法:把不变的行为放到模板抽象类中,去除子类中重复的代码
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            //利用多态性:声明的是父类,实例化子类。
            AbstractClass cc1 = new ConcreteClass();

            cc1.Template();
            cc1 = new ConcreteClass2();
            cc1.Template();

            Console.ReadKey();
        }
Ejemplo n.º 5
0
        static void Main(string[] args)
        {
            ConcreteClass          concreteClass          = new ConcreteClass();
            AnotherConcreteClass   anotherConcreteClass   = new AnotherConcreteClass();
            ADiffrentConcreteClass aDiffrentConcreteClass = new ADiffrentConcreteClass();

            concreteClass.TemplateMethod();
            Console.WriteLine();

            anotherConcreteClass.TemplateMethod();
            Console.WriteLine();

            aDiffrentConcreteClass.TemplateMethod();
            Console.WriteLine();
        }