spring中如何使用策略模式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring中如何使用策略模式相关的知识,希望对你有一定的参考价值。
参考技术A 这里使用登录做例子介绍如何实现登录的多种策略上图是策略模式的基础模型。
context
Context上下文角色,也叫Context封装角色,起承上启下的作用,屏蔽高层模块对策略、算法的直接访问,封装可能存在的变化。
Strategy
策略角色,接口类,封装相同类型策略公共方法,具体策略实现算法
ConcreteStrategy
具体策略实现Strategy中的抽象方法,编写具体算法实现。
至此基本的策略模式就说完了,具体实现看下面在spring中我们如何实现这种策略模式来实现多种登录方式:
在spring中怎样实现Context 上下文角色
/**
具体策略实现
@Component
@Slf4j
public class PhoneChatLoginStrategy implements LoginService
@Override
public LoginType getLoginType()
return LoginType.PHONE;
@Component
@Slf4j
public class WeChatLoginStrategy implements LoginService
@Override
public LoginType getLoginType()
return LoginType.WE_CHAT;
每个策略我们提供了一个枚举,这样方便我们取具体策略。
public enum LoginType
QQ,
WE_CHAT,
PHONE;
我们这里写了两个登录策略,具体调用:
@RestController
@RequestMapping("/user")
@Slf4j
public class PublicUserController
@Autowired
private LoginStrategyFactory loginStrategyFactory;
这样我们就完成了在spring中使用策略模式完成多种登录策略。
以上是关于spring中如何使用策略模式的主要内容,如果未能解决你的问题,请参考以下文章