Java设计模式之外观模式

  • 外观模式
    • 外观模式就是将一个复杂的流程业务进行封装,并提供可访问的接口让业务实现解耦。
  • 代码实现
  • /**

    * 门面模式

    */

    public class PayCallbackService {

    @Autowired

    private JifenService jifenService;

    @Autowired

    private LogService logService;

    @Autowired

    private MsgService msgService;

    @Autowired

    private PaymentStatus paymentStatus;

    public boolean callback(Map 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 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设计模式之外观模式)