Skip to content

Commit 14630e6

Browse files
authored
模板模式
模板模式
1 parent 5e36401 commit 14630e6

File tree

4 files changed

+71
-0
lines changed

4 files changed

+71
-0
lines changed
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.java.design.template;
2+
3+
public class CarA extends CarModel {
4+
5+
@Override
6+
protected void start() {
7+
8+
System.out.println("CarA start ...");
9+
}
10+
11+
@Override
12+
protected void stop() {
13+
14+
System.out.println("CarA stop ...");
15+
}
16+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.java.design.template;
2+
3+
public class CarB extends CarModel {
4+
5+
@Override
6+
protected void start() {
7+
8+
System.out.println("CarB start ...");
9+
}
10+
11+
@Override
12+
protected void stop() {
13+
14+
System.out.println("CarB stop ...");
15+
}
16+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.java.design.template;
2+
3+
public abstract class CarModel {
4+
5+
protected abstract void start();
6+
7+
protected abstract void stop();
8+
9+
final public void excet() {
10+
11+
start();
12+
stop();
13+
}
14+
15+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.java.design.template;
2+
3+
/**
4+
* 模板模式 -----> 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。
5+
* 模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。通俗的说的就是有很多相同的步骤的
6+
* 在某一些地方可能有一些差别适合于这种模式,如大话设计模式中说到的考试场景中
7+
* 每个人的试卷都是一样的,只有答案不一样。这种场景就适合于模板方法模式。我这次自己写的是一个汽车启动的过程
8+
* 每一种汽车启动的过程都基本是一样的流程,无非是这一过程中存在一些细小差别。
9+
*
10+
* @author Administrator
11+
*
12+
*/
13+
public class TemplatePattern {
14+
15+
public static void main(String[] args) {
16+
17+
CarModel carA = new CarA();
18+
carA.excet();
19+
20+
CarModel carB = new CarB();
21+
carB.excet();
22+
}
23+
24+
}

0 commit comments

Comments
 (0)