【设计模式学习笔记】门面模式

门面模式

  • 定义
    提供一个高层的接口,这个接口里包括一组接口,给用户调用。这组被包裹的接口是所有接口的一个子集。可以避免用户多次调用不同接口,同时又避免了调用所有的接口。比如,系统A有a、b、c、d四个接口,系统B只需要a、b、d三个接口。可以将a、b、d三个接口包裹成一个门面接口给系统B使用。

  • 应用场景

  1. 解决易用性问题
    比如Linux的系统调用函数以及Linux的Shell命令,都是封装了底层的代码。

  2. 解决性能问题
    比如涉及网络通信的多个接口,可以用门面接口包成一个接口,减少通信成本。
    如何组织门面接口和非门面接口?
    (1)如果门面接口不多,则和非门面接口放在一起使用;
    (2)如果门面接口很多,则提取出来,放到一个新的类或包里,通过类/包名进行区分;
    (3)如果门面接口特别多,并且跨越多个子系统,则将门面接口抽出来放到一个新的子系统里。

  3. 解决分布式事务问题
    比如两个不同的接口/类需要一起执行,成功则都成功,失败则都失败。可以用一个门面接口把这两个接口/类包在一起,放在一个session内完成。

posted @ 2022-05-22 20:05  Shengjie  阅读(23)  评论(0编辑  收藏  举报