策略(Strategy)模式定义了不同的实现逻辑,可以动态进行切换和扩展实现
/**
* @description: 登陆策略接口定义
* @author: jiang
*/
public interface LoginStrategy {
boolean login();
}
/**
* @description: 微信登陆
* @author: jiang
*/
public class WchatLoginStrategy implements LoginStrategy {
@Override
public boolean login() {
System.out.println("调用第三方微信进行登陆");
return true;
}
}
/**
* @description: QQ登陆
* @author: jiang
*/
public class QQLoginStrategy implements LoginStrategy {
@Override
public boolean login() {
System.out.println("调用第三方QQ进行登陆");
return true;
}
}
/**
* @description: 管理登陆策略上下文
* @author: jiang
*/
public class LoginStrategyContext {
private LoginStrategy loginStrategy;
public LoginStrategyContext(LoginStrategy loginStrategy){
this.loginStrategy = loginStrategy;
}
public boolean login(){
return loginStrategy.login();
}
}
public static void main(String[] args) {
QQLoginStrategy qqLogin = new QQLoginStrategy();
LoginStrategyContext strategyContext = new LoginStrategyContext(qqLogin);
strategyContext.login();
}
结果:
调用第三方QQ进行登陆