码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式一模板方法模式

时间:2019-08-02 11:19:25      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:ati   可变   结构   逻辑   end   父类   ext   code   类继承   

模板方法模式

定义一个操作中算法的骨架,而将这些步骤延迟到子类中,

模板方法使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。

不变部分的算法封装到父类中实现,而把可变部分算法由子类继承实现,便于子类继续扩展。

 

抽象类(Abstract Class)
负责给出一个算法的轮廓和骨架。它由一个模板方法和若干个基本方法构成。这些方法的定义如下。
① 模板方法:定义了算法的骨架,按某种顺序调用其包含的基本方法。
② 基本方法:是整个算法中的一个步骤,包含以下几种类型。
抽象方法:在抽象类中申明,由具体子类实现。
具体方法:在抽象类中已经实现,在具体子类中可以继承或重写它。
钩子方法:在抽象类中已经实现,包括用于判断的逻辑方法和需要子类重写的空方法两种。
具体子类(Concrete Class):
    实现抽象类中所定义的抽象方法和钩子方法,它们是一个顶级逻辑的一个组成步骤。
 1 public class Template {
 2     public static void main(String[] args) {
 3         tem t = new T();
 4         t.temp();
 5     }
 6 }
 7 
 8 abstract class tem {
 9     //抽象方法和具体方法
10     public abstract void a();
11 
12     public void b() {
13         System.out.println("第一");
14     }
15 
16     public void c() {
17         System.out.println("第二");
18     }
19 
20     public void d() {
21         System.out.println("第三");
22     }
23 
24     //模板方法
25     public void temp() {
26         a();
27         b();
28         c();
29         d();
30     }
31 }
32 
33 class T extends tem {
34     @Override
35     public void a() {
36         System.out.println("老大");
37     }
38 }

设计模式一模板方法模式

标签:ati   可变   结构   逻辑   end   父类   ext   code   类继承   

原文地址:https://www.cnblogs.com/loveer/p/11286873.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!