需求拆解:当产品说“我们后面可能要支持 10 种登录方式”
常见登录形态,本质完全不同
假设一个系统需要支持以下三种登录方式:
账号密码登录
校验密码
判断账号状态
微信扫码登录
调微信开放平台
处理 openId 绑定关系
手机号验证码登录
生成验证码
校验有效期、次数
很多系统的第一版,都会写成这样:
public String login(String loginType, Map<String, Object> params) {if ("password".equals(loginType)) {// 用户名密码逻辑} else if ("wec