c# 模板方法

    abstract class AbstractClass
    {
        public void TemplateMethod()
        {
            PrimitiveOperation1();
            PrimitiveOperation2();
        }

        protected abstract void PrimitiveOperation1();
        protected abstract void PrimitiveOperation2();
    }

    public class MB{
        public static void Show(){
            AbstractClass abstractClass = new ConcreteClassA();
            abstractClass.TemplateMethod();

            Console.WriteLine();

            abstractClass = new ConcreteClassB();
            abstractClass.TemplateMethod();
        }
    }

    class ConcreteClassA : AbstractClass
    {
        protected override void PrimitiveOperation1()
        {
            Console.WriteLine("ConcreteClassA.PrimitiveOperation1() called");
        }

        protected override void PrimitiveOperation2()
        {
            Console.WriteLine("ConcreteClassA.PrimitiveOperation2() called");
        }
    }

    class ConcreteClassB : AbstractClass
    {
        protected override void PrimitiveOperation1()
        {
            Console.WriteLine("ConcreteClassB.PrimitiveOperation1() called");
        }

        protected override void PrimitiveOperation2()
        {
            Console.WriteLine("ConcreteClassB.PrimitiveOperation2() called");
        }
    }

 

posted @ 2023-05-12 14:14  vba是最好的语言  阅读(43)  评论(0编辑  收藏  举报