/**
* @author lyh
* @version v-1.0.0
* @since 2021/6/2
*/
public class Client {
public staticvoidmain(String[] args){//根据需要客户自行选择策略//加入Java开发交流君样:756584822一起吹水聊天//选择策略1
StrategyObj strategyOne = new StrategyObj(new StrategyOne());
System.out.println(strategyOne.strategy("one"));//选择策略2
StrategyObj strategyTwo = new StrategyObj(new StrategyTwo());
System.out.println(strategyTwo.strategy("two"));}}
输出:
执行策略1!
执行策略2!
Process finished with exit code 0[/code]
策略接口:
/**
* @desc:策略接口
*/
public interface Strategy {
String execute(String s);}/**
* @desc:策略接口封装
*/
public class StrategyObj {
private final Strategy strategy;
public StrategyObj(Strategy v){
this.strategy = v;}
public String strategy(String s){return strategy.execute(s);}//加入Java开发交流君样:756584822一起吹水聊天}[/code]
策略实现:
/**
* @desc:策略一
*/
public class StrategyOne implements Strategy {
@Override
public String execute(String s){return"执行策略1!";}}/**
* @desc:策略二
*/
public class StrategyTwo implements Strategy {
@Override
public String execute(String s){return"执行策略2!";}}[/code]
public class Client {
public staticvoidmain(String[] args){
StrategyObj strategyOne = new StrategyObj((String s)->{return"执行策略1";});
System.out.println(strategyOne.strategy("one"));//加入Java开发交流君样:756584822一起吹水聊天
StrategyObj strategyTwo = new StrategyObj((String s)->{return"执行策略2";});
System.out.println(strategyTwo.strategy("two"));}}[/code]