美文网首页
门面模式

门面模式

作者: lj72808up | 来源:发表于2021-04-15 15:33 被阅读0次

    1. 门面模式

    解决接口的复用性和易用性之间的冲突

    • 复用性: 接口的业务粒度设计的足够小, 只完成一件事, 让不同的调用者都能调用. 但往往存在粒度过小, 调用者要调用一系列接口的情况, 导致易用性下降
    • 易用性: 接口的业务粒度设计的足够大, 一个接口完成 n 件事, 调用者调用一个接口就能完成一系列动作, 但导致复用性降低

    2. 门面模式的做法

    假设有一个系统 A,提供了 a、b、c、d 四个接口。系统 B 完成某个业务功能,需要调用 A 系统的 a、b、d 接口。利用门面模式,我们提供一个包裹 a、b、d 接口调用的门面接口 x,给系统 B 直接使用。

    3. 门面模式解决什么问题

    (1) 解决易用性问题
    迪米特法则(最小知识原则)
    接口隔离原则

    (2) 包裹接口解决性能问题
    对于 web 应用, 同时调用多个接口会造成网络 IO 压力大, 响应速度慢. 如果只调用一个借口就能让页面获取足够的信息, 会加速页面响应

    (3) 解决分布式事务问题
    比如一个金融系统的账号注册, 要同时完成用户创建和用户的钱包创建, 这两个操作是在一个事务里的, 要同时成功或失败. 如果远端调用方分别调用者两个接口, 需要引入分布式事务的做法, 代码复杂度很高. 如果远端系统暴露出了同时创建用户和钱包的接口, 则可以避免引入分布式事务

    4. 总结

    • 门面模式通过设计冗余接口的方法, 解决接口粒度的易用性问题
    • 适配器模式解决的都是方法调用时, 形参和实参类型不匹配的问题

    相关文章

      网友评论

          本文标题:门面模式

          本文链接:https://www.haomeiwen.com/subject/lendlltx.html