# 模板模式

属于行为型模式。
一个抽象类公开定义了执行它的方法的方式 / 模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。

# 类图

img

# 代码

# 抽象类及其子类

namespace BehavioralPatterns_TemplatePattern
{
    /// <summary>
    /// 形状
    /// </summary>
    public abstract class Shape
    {
        /// <summary>
        /// 形状
        /// </summary>
        public void MyShape()
        {
            Console.WriteLine("Shape: " + ShapeName());
        }
        /// <summary>
        /// 由子类提供信息
        /// </summary>
        /// <returns></returns>
        protected abstract string ShapeName();
    }
}
namespace BehavioralPatterns_TemplatePattern
{
    /// <summary>
    /// 正方形
    /// </summary>
    public class Square : Shape
    {
        protected override string ShapeName()
        {
            return "Square";
        }
    }
}
namespace BehavioralPatterns_TemplatePattern
{
    /// <summary>
    /// 三角形
    /// </summary>
    public class Triangle : Shape
    {
        protected override string ShapeName()
        {
            return "Triangle";
        }
    }
}

# 测试

namespace BehavioralPatterns_TemplatePattern
{
    public class Program
    {
        private static void Main()
        {
            Shape shape_0 = new Square();
            Shape shape_1 = new Triangle();
            shape_0.MyShape();
            shape_1.MyShape();
        }
    }
}

运行结果:
Shape: Square
Shape: Triangle

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Maikire 微信支付

微信支付

Maikire 支付宝

支付宝

Maikire 贝宝

贝宝