知识卡片

门面模式让子系统内部变化对客户端透明

普通读书笔记卡 · 1856.a.1

内容

[[门面模式的定义与两个角色]]的关键效果:只要不改变门面对外暴露的方法签名,子系统内部 无论怎么增删协作步骤,调用方代码完全不用改动。写信案例里新增安检步骤只需在门面内部插入 一行,高层调用方无感知。发散:这与[[装饰模式是继承的动态可撤销替代方案]]相似——都能不 惊动调用方叠加新步骤,区别是门面的叠加点固定写死,装饰模式的叠加运行时可插拔组合。

参考来源

- 位置:《设计模式之禅(第2版)》第23章《门面模式》(源文件:_epub-src/text/part0104.html) - 结论依据:原文展示在ModenPostOffice内部新增Police检查步骤后,"高层模块没有任何改动,但是信件却已经被检查过了……不改变子系统对外暴露的接口、方法,只改变内部的处理逻辑,其他兄弟模块的调用产生了不同的结果"。 - 原始内容:那这个变更对客户来说是透明的,他根本就看不到有人在检查他的邮件,他也不用了解……高层模块没有任何改动,但是信件却已经被检查过了。这正是我们设计所需要的模式,不改变子系统对外暴露的接口、方法,只改变内部的处理逻辑。