• 模板模式


    模板模式

     

    模板模式

    举例:模拟下数据库的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方法。[李建忠]

    设计模式系列文章入口

  • 相关阅读:
    PyQt(Python+Qt)学习随笔:QTreeWidgetItem项子项展开相关方法
    PyQt(Python+Qt)学习随笔:QTreeWidgetItem项下子项的指示符展示原则childIndicatorPolicy
    PyQt(Python+Qt)学习随笔:QTreeWidgetItem项是否禁用disable、隐藏isHidden和允许选中isSelected
    查看 Apache并发请求数及其TCP连接状态
    Web服务器性能/压力测试工具http_load、webbench、ab、Siege使用教程
    Apache下禁止使用IP直接访问本站的配置方法
    apache两种工作模式详解
    合理设置apache的连接数及进程工作方式
    apache 工作模式
    Windows下Apache的优化
  • 原文地址:https://www.cnblogs.com/sc0791/p/3669982.html
Copyright © 2020-2023  润新知