设计模式学习笔记(五)--模板模式(TemplateMethod)

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

模板方式结构图如下:

 

java代码实现如下:

抽象模板类

 1 //抽象摸板类,包括一个已经实现了的方法和一些抽象操作,这些抽象操作会推迟到子类实现
 2 abstract class AbstractClass{
 3     public abstract void PrimitiveOperation1();
 4     public abstract void PrimitiveOperation2();
 5     
 6     public void TemplateMethod(){
 7         //这里可以是执行子类方法前的一些操作,如果是数据库操作,此时可以是获取数据库连接
 8         System.out.println("我是模板方法!");
 9         PrimitiveOperation1();
10         PrimitiveOperation2();
11     }
12 }

具体实现类,可以有多个

 1 //具体子类实现
 2 class ConcreteClassA extends AbstractClass{
 3 
 4     @Override
 5     public void PrimitiveOperation1() {
 6         System.out.println("具体类A方法1实现");
 7         
 8     }
 9 
10     @Override
11     public void PrimitiveOperation2() {
12         System.out.println("具体类A方法2实现");
13         
14     }
15     
16 }
17 
18 class ConcreteClassB extends AbstractClass{
19 
20     @Override
21     public void PrimitiveOperation1() {
22         System.out.println("具体类B方法1实现");
23         
24     }
25 
26     @Override
27     public void PrimitiveOperation2() {
28         System.out.println("具体类B方法2实现");
29         
30     }
31     
32 }

客户端代码

 1 /**
 2  * 模板方式
 3  * @author yiRain
 4  *
 5  */
 6 
 7 //客户端代码
 8 public class TemplateMethodTest {
 9     public static void main(String[] args){
10         AbstractClass classA = new ConcreteClassA();
11         classA.TemplateMethod();
12         
13         AbstractClass classB = new ConcreteClassB();
14         classB.TemplateMethod();
15         
16     }
17 
18 }

运行结果如下:

扫描二维码关注公众号,回复: 1499591 查看本文章

猜你喜欢

转载自www.cnblogs.com/yiRain1992/p/9147339.html