设计模式 -- 外观模式(Facade Pattern)

本文探讨了外观模式在软件设计中的应用,如何通过对外提供统一接口隐藏子系统复杂性,以保护调用者不受子系统变更影响。通过聚合SDK(如广告、社交媒体和支付)实例,展示了模式在构建层次系统中的实际作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对外提供简单的交互接口,隐藏内部的复杂性。

类似SDK接口

应用场景

  • 子系统在迭代的过程中可以会不断变化,甚至被替代掉,给一个统一的访问接口,避免子系统的改变影响到外部的调用者。

  • 当需要构建层次结构型的系统时,为各层子系统提供访问的接口进行通信,避免直接产生依赖。

  • 例如:聚合广告SDK;ShareSDK: 聚合社交媒体的;Ping++:聚合支付的,还有聚合各种小程序开发的,聚合各社交平台发布文章或者视频的等等。

// 列表接口
public interface List {
    
    void add();
    void remove();
}


// 数组列表
public class ArrayList implements List {
    @Override
    public void add() {
    }

    @Override
    public void remove() {
    }
}


// 链表列表
public class LinkedList implements List {
    @Override
    public void add() {
    }

    @Override
    public void remove() {
    }
}

//外观角色
class Facade {
    private SubSystem01 obj1 = new SubSystem01();
    private SubSystem02 obj2 = new SubSystem02();
    private SubSystem03 obj3 = new SubSystem03();


    public void method() {
        obj1.method1();
        obj2.method2();
        obj3.method3();
    }
}


根据以下文章总结:

  1. Java设计模式:23种设计模式全面解析(超级详细)HYPERLINK http://c.biancheng.net/design_pattern/ 

  2. 3种设计模式详解 https://www.iteye.com/blog/zz563143188-1847029 

  3. Android系统编程思想:设计模式https://github.com/sucese/android-open-source-project-analysis/blob/master/doc/Android%E7%B3%BB%E7%BB%9F%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E7%AF%87/02Android%E7%B3%BB%E7%BB%9F%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E7%AF%87%EF%BC%9A%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#35-%E8%A7%82%E5%AF%9F%E8%80%85%E6%A8%A1%E5%BC%8F

  4. 设计模式 https://blog.youkuaiyun.com/shusheng0007/category_8638565.html

  5. java设计模式 https://blog.youkuaiyun.com/qq_37909508/category_8976362.html

  6. 设计模式 https://www.cnblogs.com/zuoxiaolong/category/509144.html 

  7. 设计模式 在源码中的应用 https://blog.youkuaiyun.com/qq_36970993/category_10620886.html

  8. Android系统设计中存在设计模式分析 https://www.2cto.com/kf/201208/150650.html

  9. Android设计模式系列 - 基于android的各种代码分析各种设计模式 https://www.cnblogs.com/qianxudetianxia/category/312863.html 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值