首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
数据库
›
分布式数据库
›
java23种计划模式-表面模式
返回列表
发新帖
java23种计划模式-表面模式
[复制链接]
发表于 2025-10-24 23:59:06
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
表面模式(Facade Pattern)学习条记
🌟 界说
表面模式
属于
结构型计划模式
,提供一个同一的接口来访问子体系中的多个接口。它通过界说一个高层接口简化客户端与复杂子体系的交互。
🎯 实用场景
为复杂子体系提供简单入口
解耦客户端与子体系
分层构建体系(各层通过表面类交互)
遗留体系重构(用表面类封装旧接口)
🔧 模式结构
📐 类图
🛠️ 核心构成
Facade(表面脚色)
知道子体系
功能
将客户端哀求委派给对应子体系对象
Subsystem Classes(子体系脚色)
实现子体系具体
功能
不感知表面存在(可独立运行)
📝
代码
示例
家庭影院场景
// 子系统类
class Lights {
void dim() { System.out.println("灯光调暗"); }
}
class SoundSystem {
void on() { System.out.println("音响开启"); }
}
class Projector {
void down() { System.out.println("幕布降下"); }
}
// 外观类
class HomeTheaterFacade {
private Lights lights;
private SoundSystem sound;
private Projector projector;
public HomeTheaterFacade() {
this.lights = new Lights();
this.sound = new SoundSystem();
this.projector = new Projector();
}
public void watchMovie() {
lights.dim();
sound.on();
projector.down();
}
}
// 客户端
public class Client {
public static void main(String[] args) {
HomeTheaterFacade facade = new HomeTheaterFacade();
facade.watchMovie(); // 一键启动观影模式
}
}
389caf9d-5e32-479d-81c1-66e32a002b95
复制
代码
✅ 优点
简化客户端使用复杂度
客户端与子体系松耦合
更好的访问控制(可限定直接访问子体系)
符合迪米特法则(最少知识原则)
⚠️ 缺点
过分使用会导致体系层级过多
增长维护资源(修改子体系大概需调解表面)
大概成为"天主对象"(需注意职责分别)
🔄 相干模式对比
模式区别中介者模式关注子体系间的通讯调和单例模式表面类常实现为单例抽象工厂模式可与表面连合封装创建过程
💡 实践发起
优先思
量子
体系重构而不是表面包装
保持表面类的单一职责
可创建多个表面类对应差别使用场景
通过依赖注入管理子体系对象
把握表面模式的关键在于明白它作为
体系流派
的定位,公道使用可以明显提升体系的易用性和可维护性。
回复
使用道具
举报
返回列表
浏览过的版块
Oracle
SAAS
DevOps与敏捷开发
数据仓库与分析
容器及微服务
瑞星
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表