第13章 模版方法模式(Template Method)

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 原文  第13章 模版方法模式(Template Method) 模板模式     模板模式 举例:模拟下数据库的update方法,先删除在插入。   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ...

原文  第13章 模版方法模式(Template Method)

模板模式

 

 

模板模式

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

   

   设计模式系列文章入口

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6月前
|
设计模式 算法
设计模式9 - 模板方法模式【Template Method Pattern】
设计模式9 - 模板方法模式【Template Method Pattern】
21 0
|
6月前
|
设计模式 算法 Java
设计模式~模板方法模式(Template method)-10
目录 (1)优点: (2)缺点: (3)使用场景: (4)注意事项: (5)应用实例: (6)Servlet Api &
32 0
|
设计模式 算法 Java
设计模式学习(六):Template Method模板方法模式
模板的原意是指带有镂空文字的薄薄的塑料板。只要用笔在模板的镂空处进行临摹,即使是手写也能写出整齐的文字,但是具体写出的文字是什么感觉则依赖于所用的笔。如果使用签字笔来临摹,则可以写出签字似的文字;如果使用铅笔来临摹,则可以写出铅笔字;而如果是用彩色笔临摹,则可以写出彩色的字。但是无论使用什么笔,文字的形状都会与模板上镂空处的形状一致。
设计模式学习(六):Template Method模板方法模式
|
设计模式 算法 Java
行为型-Template
模板模式的原理与实现 模板模式,全称是模板方法设计模式,英文是 Template Method Design Pattern。在 GoF 的《设计模式》一书中,它是这么定义的
95 0
|
算法 设计模式 Java
设计模式:模板方法模式(Template Method)
 模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。TemplateMethod使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。一次性的实现一个算法的不变部分,并将可变的行为留给子类来实现。
1046 0
|
算法 Java Spring
设计模式六: 模板方法(Template Method)
简介 模板方法属于行为型模式的一种. 实现层面上, 在抽象类中定义了算法或流程的骨架, 将其中易变的部分延迟到子类实现, 也就是允许它的子类实现其中的某些步骤. 模板方法适用于算法不变, 但算法中某些步骤有变化的场景, 例如Spring中JDBC事务操作,打开连接-->开启事务-->执行sql-->提交事务-->关闭连接, 每次操作均按照这个步骤进行, 变化的是执行的sql不一样. 意图 定义算法框架,并将一些步骤的实现延迟到子类实现。
943 0
|
Java 小程序 设计模式
设计模式——14模板方法模式(Template Method)
模板方法模式(Template Method)
1190 0