考虑以下设计,我怀疑我是否以正确的方式实现了function doUpdate()
{
var btn = document.getElementById("<%#= btnUpdate.ClientID %>");
if(btn != null) { btn.click(); }
}
设计模式。我担心的是我操纵了来自客户的简单请求;而不是天真地将请求委托给封装类型:Facade
。好吗?它实际上不是ComplexWorker
设计模式吗?
Wrapper
答案 0 :(得分:2)
是的,您已经实现了Façade模式。
使用您的Façade的人可以享受不一定熟悉子系统的好处(在您的示例中为ComplexRequest和ComplexWorker)。这意味着您为客户端提供了一个高级统一的界面。这就是外墙的意义所在。这样做是为了利用信息隐藏原则。
Wrapper模式,或者更常见的是Adapter pattern,解决了另一个问题。它可以帮助您使不兼容的接口协同工作。它通常有助于使旧组件的阻抗匹配适应新系统。