外观和业务代表设计模式之间有什么区别。是不是都用于从客户端隐藏业务逻辑?
答案 0 :(得分:7)
代表团站在客户端和实际实现之间,通常从客户端隐藏/过滤/扩充实现的某些功能。
Facade提供了一个包含更复杂逻辑和/或协调的课程粒度API,通常捆绑了多个协同工作的实现,通常是为了方便客户端。
每个来自java的例子:
委托:Collections.unmodifiableList()
返回一个List,该List保留对原始List的引用并为所有方法委托给它,但如果调用其mutator方法则抛出异常。
Facade:如果您曾见过print a java DOM XML document所需的大量代码,那么您要做的第一件事就是创建一个实用工具方法来隐藏所有丑陋 - 该方法可以被视为一个外观。