Skip to content

Commit 63af958

Browse files
committed
模板方法模式
1 parent 804f2fc commit 63af958

File tree

4 files changed

+41
-0
lines changed

4 files changed

+41
-0
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.anxpp.designpattern.templatemethod;
2+
//抽象模板
3+
public abstract class AbstractTemplate {
4+
Object data;
5+
//这个就是模板方法
6+
void dealData(){
7+
getData();
8+
calcData();
9+
printData();
10+
}
11+
//下面是普通方法,可能已经实现,也可能需要子类实现
12+
abstract void getData();
13+
abstract void calcData();
14+
void printData(){
15+
System.out.println(data);
16+
}
17+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.anxpp.designpattern.templatemethod;
2+
//具体模板
3+
public class Template extends AbstractTemplate {
4+
@Override
5+
void getData() {
6+
data = "data";
7+
}
8+
@Override
9+
void calcData() {
10+
data = (String)data+data;
11+
}
12+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.anxpp.designpattern.templatemethod;
2+
public class TestUse {
3+
public static void main(String args[]){
4+
Template template = new Template();
5+
template.dealData();
6+
}
7+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
/**
2+
* @author Administrator
3+
* 模板方法模式
4+
*/
5+
package com.anxpp.designpattern.templatemethod;

0 commit comments

Comments
 (0)