主页 > IT业界  > 

基于spring的策略模式

基于spring的策略模式

集合spring框架的是策略模式,直接上代码

1、接口 public interface PaymentStrategy { //支付接口 void pay(double amount); } 2、实现类 2.1 实现类一 @Component("creditCard") //作为区分的标识 public class CreditCardPayment implements PaymentStrategy {//实现接口 //重写的接口 @Override public void pay(double amount) { System.out.println("Paid " + amount + " using Credit Card."); } } 2.2 实现类一 @Component("creditCard") //作为区分的标识 public class PayPalPayment implements PaymentStrategy {//实现接口 //重写的接口 @Override public void pay(double amount) { System.out.println("Paid " + amount + " using PayPal."); } } 3、工厂方法 //工厂方法 @Component public class PaymentStrategyFactory { private final Map<String, PaymentStrategy> strategies; //自动字数管理映射 @Autowired public PaymentStrategyFactory(Map<String, PaymentStrategy> strategies) { this.strategies = strategies; } //根据实现类的bean获取对应的实例 public PaymentStrategy getStrategy(String strategyName) { return strategies.get(strategyName); } } 4、应用层 // 依赖注入 private final PaymentStrategyFactory paymentStrategyFactory; @Autowired public LocalTest(PaymentStrategyFactory paymentStrategyFactory) { this.paymentStrategyFactory = paymentStrategyFactory; } @GetMapping("strategyTest") public String strategyTest(@RequestParam(value = "method") String method, @RequestParam(value = "amount") double amount) throws IOException { //获取对应的实例 PaymentStrategy strategy = paymentStrategyFactory.getStrategy(method); if (strategy == null) { throw new RemoteException("Unknown payment method: "+method); } //运行 strategy.pay(amount); return "Payment successful!"; }
标签:

基于spring的策略模式由讯客互联IT业界栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“基于spring的策略模式