File tree Expand file tree Collapse file tree 7 files changed +59
-0
lines changed
src/com/anxpp/designpattern/strategy Expand file tree Collapse file tree 7 files changed +59
-0
lines changed Original file line number Diff line number Diff line change 1+ package com .anxpp .designpattern .strategy ;
2+ //策略
3+ public interface ISaveData {
4+ void save (Object data );
5+ }
Original file line number Diff line number Diff line change 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+ }
Original file line number Diff line number Diff line change 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+ }
Original file line number Diff line number Diff line change 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+ }
Original file line number Diff line number Diff line change 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+ }
Original file line number Diff line number Diff line change 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+ }
Original file line number Diff line number Diff line change 1+ /**
2+ * @author Administrator
3+ * 策略模式
4+ */
5+ package com .anxpp .designpattern .strategy ;
You can’t perform that action at this time.
0 commit comments