【发布时间】:2020-03-12 22:50:22
【问题描述】:
外观和业务委托设计模式有什么区别?
不是都用来对客户端隐藏业务逻辑的吗?
【问题讨论】:
标签: design-patterns jakarta-ee
外观和业务委托设计模式有什么区别?
不是都用来对客户端隐藏业务逻辑的吗?
【问题讨论】:
标签: design-patterns jakarta-ee
委托位于客户端和实际实现之间,通常对客户端隐藏/过滤/增强实现的某些功能。
Facade 提供了一个粗略的 API,隐藏了更复杂的逻辑和/或协调,通常捆绑了多个协同工作的实现,通常是为了方便客户端。
每个来自 java 的示例:
委托:Collections.unmodifiableList() 返回一个 List,该 List 保留对原始 List 的引用并为所有方法委托给它,但如果调用其 mutator 方法则抛出异常。
Facade:如果您曾经见过print a java DOM XML document 所需的大量代码,那么您要做的第一件事就是创建一个实用方法来隐藏所有丑陋之处 - 该方法可以被视为外观。
【讨论】: