• 大话设计模式读书笔记4——模版方法模式


    模板方法是一种常见的设计模式,它定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

    UML图:

     具体实现代码:

    namespace TemplateMethod
    {
        class Program
        {
            static void Main(string[] args)
            {
                AbstractClass A = new ConcreteClassA();
                A.TemplateMethod();
                AbstractClass B = new ConcreteClassB();
                B.TemplateMethod();
                Console.ReadKey();
            }
        }
    
        public abstract class AbstractClass
        {
            public abstract void PrimitiveOperation1();
            public abstract void PrimitiveOperation2();
    
            public void TemplateMethod()
            {
                PrimitiveOperation1();
                PrimitiveOperation2();
                Console.WriteLine("");
            }
        }
    
        class ConcreteClassA : AbstractClass
        {
            public override void PrimitiveOperation1()
            {
                Console.WriteLine("具体类A.方法1实现");
            }
    
            public override void PrimitiveOperation2()
            {
                Console.WriteLine("具体类A.方法2实现");
            }
        }
    
        class ConcreteClassB : AbstractClass
        {
            public override void PrimitiveOperation1()
            {
                Console.WriteLine("具体类B.方法1实现");
            }
    
            public override void PrimitiveOperation2()
            {
                Console.WriteLine("具体类B.方法2实现");
            }
        }
    }

     模版方法模式的特点:

    模版方法模式是通过把不变的行为搬移到父类,去除子类中的重复代码来体现它的优势。

    模版方法模式就是提供了一个很好的代码复用平台。

    当不变的和可变的行为在方法的子类实现中混合在一起的时候, 不变的行为就会在子类中重复出现。我们通过模版方法模式把这些行为搬移到单一的地方,这样就帮助子类摆脱重复的不变行为的纠缠。

  • 相关阅读:
    redux VS mobx (装饰器配合使用)
    react-native 中使用 mobx
    使用 react-native-tab-navigator 创建 TabBar 组件
    react-native ListView 封装 实现 下拉刷新/上拉加载更多
    react-native 路由 react-native-router-flux
    react-native fetch 请求封装
    react-native flex 布局 详解
    react-native AsyncStorage 数据持久化方案
    react-native 自定义 下拉刷新 / 上拉加载更多 组件
    用 Core Animation 实现图片的碎片化
  • 原文地址:https://www.cnblogs.com/lxblog/p/4095260.html
Copyright © 2020-2023  润新知