Skip to content

模板方法(TemplateMethod)模式 行为型模式

更新: 2023-05-24 11:11:27   字数: 0 字   时长: 0 分钟

定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。

c#
// 模板方法模式示例
using System;

namespace TemplateMethodPattern
{
    // 抽象类
    abstract class AbstractClass
    {
        // 模板方法
        public void TemplateMethod()
        {
            // 调用基本方法
            PrimitiveOperation1();
            PrimitiveOperation2();
        }

        // 基本方法(抽象方法)
        protected abstract void PrimitiveOperation1();
        protected abstract void PrimitiveOperation2();
    }

    // 具体类A
    class ConcreteClassA : AbstractClass
    {
        protected override void PrimitiveOperation1()
        {
            Console.WriteLine("具体类A方法1实现");
        }

        protected override void PrimitiveOperation2()
        {
            Console.WriteLine("具体类A方法2实现");
        }
    }

    // 具体类B
    class ConcreteClassB : AbstractClass
    {
        protected override void PrimitiveOperation1()
        {
            Console.WriteLine("具体类B方法1实现");
        }

        protected override void PrimitiveOperation2()
        {
            Console.WriteLine("具体类B方法2实现");
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            AbstractClass c;

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

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

            Console.ReadKey();
        }
    }
}
你觉得这篇文章怎么样?
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
评论
  • 按正序
  • 按倒序
  • 按热度