知识卡片

门面模式的三点优点与违反开闭原则的代价

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

内容

[[门面模式的定义与两个角色]]带来三点收益:减少系统相互依赖;提高灵活性(子系统内部只要 不影响门面方法就可自由变化);提高安全性(未开放的方法外界触碰不到)。代价是明显违反 开闭原则——门面一旦投产后发现设计缺陷,唯一办法是直接修改门面代码,风险很大。发散: 门面模式适合承接相对稳定的访问入口,若接口设计还在频繁变动,说明门面划分的时机或粒度 可能有问题。

参考来源

- 位置:《设计模式之禅(第2版)》第23章《门面模式》(源文件:_epub-src/text/part0106.html) - 结论依据:原文列出三点优点(减少系统相互依赖、提高灵活性、提高安全性)并说明缺点"门面模式最大的缺点就是不符合开闭原则……一旦在系统投产后发现有一个小错误,你怎么解决?完全遵从开闭原则,根本没办法解决……唯一能做的一件事就是修改门面角色的代码"。 - 原始内容:所有的依赖都是对门面对象的依赖,与子系统无关……依赖减少了,灵活性自然提高了……想让你访问子系统的哪些业务就开通哪些逻辑……门面模式最大的缺点就是不符合开闭原则……唯一能做的一件事就是修改门面角色的代码,这个风险相当大。