一步一坑

设计模式- 模板方法模式(Template Method Pat

2019-04-30  本文已影响0人  易兒善

定义

模板方法模式(Template Method Pattern): 定义一个操作中算法的骨架,将这些步骤延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤

C#例子

    /// <summary>
    /// 模板
    /// </summary>
    public abstract class AbstractClass
    {
        /// 子类需要实现此方法
        protected abstract int _count();
        protected abstract int _add();
        /// <summary>
        /// 一个算法,或者一个过程。
        /// </summary>
        /// <param name="input"></param>
        public void Count(int input) {
            var result = this._count()*input+_add()-20;
            Console.WriteLine(result);
        }
    }
    /// <summary>
    /// 实现10倍+100
    /// </summary>
    public class ConcreteClass10 : AbstractClass
    {
        protected override int _add()
        {
            return 100;
        }

        protected override int _count()
        {
            return 10;
        }
    }
    /// <summary>
    /// 实现20倍+2
    /// </summary>
    public class ConcreteClass20 : AbstractClass
    {
        protected override int _add()
        {
            return 2;
        }

        protected override int _count()
        {
            return 20;
        }
        
    }

模板方法模式参与者:

模板方法模式适用情形:

模板方法模式特点:

其他

源码地址

dotnet-design-patterns

其他设计模式

23种设计模式

上一篇 下一篇

猜你喜欢

热点阅读