- 外观模式
- 外观模式就是将一个复杂的流程业务进行封装,并提供可访问的接口让业务实现解耦。
- 代码实现
-
/**
* 门面模式
*/
public class PayCallbackService {
@Autowired
private JifenService jifenService;
@Autowired
private LogService logService;
@Autowired
private MsgService msgService;
@Autowired
private PaymentStatus paymentStatus;
public boolean callback(Map<String, String> verifySignature) {
// 1.第一步打印日志信息
logService.logServices(verifySignature);
// 2.修改订单状态为已经支付
paymentStatus.payStatus();
// 3.调用积分接口增加积分
jifenService.jifen(verifySignature.toString());
// 4.调用消息服务平台提示
msgService.msg(verifySignature.toString());
return true;
}
}
/**
* 门面模式-积分服务业务
*/
@Component
public class JifenService {
public void jifen(String param){
System.out.println("调用积分服务平台");
HttpClientUtils.doPost("jifen.com",param);
}
}
/**
* 门面模式-日志业务
*/
@Component
public class LogService {
public void logServices(Map<String, String> verifySignature){
String orderId = verifySignature.get("orderId"); // 获取后台通知的数据,其他字段也可用类似方式获取
String respCode = verifySignature.get("respCode");
System.out.println("orderId:{},respCode:{}"+ orderId+ respCode);
}
}
-
* 门面模式-消息服务业务
*/
@Component
public class MsgService {
public void msg(String param){
System.out.println("调用消息服务平台");
HttpClientUtils.doPost("msg.com",param);
}
}
/**
* 门面模式-支付状态业务
*/
@Component
public class PaymentStatus {
public void payStatus(){
System.out.println(">>>修改订单状态为已经支付>>>>>");
}
}
-
-------------------------------------------------------------------------本文内容参考蚂蚁课堂精讲设计模式系列
-
Java设计模式之外观模式
最新推荐文章于 2024-10-10 21:34:07 发布