Skip to content

Commit 292648b

Browse files
committed
策略模式
1 parent 6012471 commit 292648b

File tree

7 files changed

+59
-0
lines changed

7 files changed

+59
-0
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package com.anxpp.designpattern.strategy;
2+
//策略
3+
public interface ISaveData {
4+
void save(Object data);
5+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.anxpp.designpattern.strategy;
2+
//环境
3+
public class SaveClient {
4+
private ISaveData saveData;
5+
public SaveClient(ISaveData saveData){
6+
this.saveData = saveData;
7+
}
8+
public void setSaveData(ISaveData saveData){
9+
this.saveData = saveData;
10+
}
11+
public void save(Object data){
12+
saveData.save(data);
13+
}
14+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package com.anxpp.designpattern.strategy;
2+
//具体策略
3+
public class SaveToFile implements ISaveData {
4+
@Override
5+
public void save(Object data) {
6+
System.out.println("数据:" + data + " 保存到文件");
7+
}
8+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package com.anxpp.designpattern.strategy;
2+
//具体策略
3+
public class SaveToMysql implements ISaveData {
4+
@Override
5+
public void save(Object data) {
6+
System.out.println("数据:" + data + " 保存到Mysql");
7+
}
8+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package com.anxpp.designpattern.strategy;
2+
//具体策略
3+
public class SaveToRedis implements ISaveData {
4+
@Override
5+
public void save(Object data) {
6+
System.out.println("数据:" + data + " 保存到Redis");
7+
}
8+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.anxpp.designpattern.strategy;
2+
public class TestUse {
3+
public static void main(String args[]){
4+
Object data = "数据";
5+
ISaveData saveData = new SaveToRedis();
6+
SaveClient client = new SaveClient(saveData);
7+
client.save(data);
8+
client.setSaveData(new SaveToFile());
9+
client.save(data);
10+
}
11+
}
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.strategy;

0 commit comments

Comments
 (0)