zoukankan      html  css  js  c++  java
  • 模板模式

    模板模式

     

    模板模式

    举例:模拟下数据库的update方法,先删除在插入。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
        abstract class SqlManage
        {
            public string connStr;
            //虚方法 子类可以重写
            public virtual void SetConnStr()
            {
              connStr="Server=Rj-097;User Id=sa;Password=sa;Database=Northwind";
            }
            public abstract void Delete();
            public abstract void Insert();
       
            public void Update()
            {
              SetConnStr();
              Delete();
              Insert();
            }
            
        }
        /// <summary>
        /// SqlServer的修改方法具体实现
        /// </summary>
        class SqlServer : SqlManage
        {
            public override void Delete()
            {
                //SqlServer的删除数据的方法
            }
            public override void Insert()
            
              //SqlServer的插入数据的方法
             }
        }
        /// <summary>
        /// MySql的修改方法具体实现
        /// </summary>
        class MySql : SqlManage
        {
            public override void Delete()
            {
                //MySql的删除数据的方法
            }
            public override void Insert()
            {
                //MySql的插入数据的方法
            }
        }

    调用mysql的更新方法:

    1
    2
    3
    4
    5
    6
    7
    8
    9
        class Program
        {
            static void Main(string[] args)
            {
                //mysql的更新方法
                SqlManage mySql = new MySql();
                mySql.Update();
            }
        }

    模板模式,用的非常的广泛。核心的就在于能自动执行子类实现的方法。

    要点:

    1Template Method模式是一种非常基础性的设计模式,在面向对象系统中有着大量的应用。它用最简洁的机制(虚函数的多态性)为很多应用程序框架提供了灵活的扩展点,是代码复用方面的基本实现结构。

    2.除了可以灵活应对子步骤的变化外,“不用调用我,让我来调用你”的反向控制结构是Template Method的典型应用。

    3.在具体实现方面,被Template Method调用的虚方法可以具有实现,也可以没有任何实现(抽象方法,纯虚方法),但一般推荐将它们设置为protected方法。[李建忠]

    设计模式系列文章入口

  • 相关阅读:
    【前端开发】vue子项目打包一个组件供另一个项目使用教程
    【前端开发】基于flow-editor-vue库改造的流程设计器,审批流程引擎前端教程
    【前端开发】基于logicFlow可视化流程库改造的流程引擎教程
    知识蒸馏:Distillation
    浮点神经网络vs二值神经网络
    Representation Learning 表征学习
    mybatis plus 追加where 函数
    20211012 MapStruct
    20211012 Dubbo 的 SPI 和 Adaptive
    20210916 小马哥讲 Spring AOP
  • 原文地址:https://www.cnblogs.com/sc0791/p/3669982.html
Copyright © 2011-2022 走看看