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方法。[李建忠]

    设计模式系列文章入口

  • 相关阅读:
    jquery_ajax 地址三级联动
    delphi窗体按钮灰化禁用
    sqlserver查找断号,回收单据号
    query.locate过个过滤参数
    StringGrid换行功能
    你不知道的JavaScript--Item13 理解 prototype, getPrototypeOf 和__proto__
    你不知道的JavaScript--Item12 undefined 与 null
    你不知道的JavaScript--Item11 arguments对象
    你不知道的JavaScript--Item10 闭包(closure)
    你不知道的JavaScript--Item9 call(),apply(),bind()与回调
  • 原文地址:https://www.cnblogs.com/sc0791/p/3669982.html
Copyright © 2011-2022 走看看