委托站在客户端和实际实现之间,通常从客户端隐藏/过滤/扩充实现的某些功能.
Facade提供了一个包含更复杂逻辑和/或协调的课程粒度API,通常捆绑了多个协同工作的实现,通常是为了方便客户端.
每个来自java的例子:
委托:Collections.unmodifiableList()返回一个List,它保留对原始List的引用并为所有方法委托给它,但如果调用其mutator方法则抛出异常.
Facade:如果您曾经看过打印java DOM XML文档所需的大量代码,那么您要做的第一件事是创建一个实用工具方法来隐藏所有丑陋 - 该方法可以被视为外观.