JAVA设计模式:外观(Facade)
外观模式为子系统中的一组接口提供一个一致的界面。Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
网上有许多安保系统应用外观模式的例子,在这里我举一个客服中心的例子,客户投诉一般会经过以下一系列操作:登记投诉信息、分配受理部门、提交投诉信息。
没有客服MM的时候,客户投诉需要自己操作登记信息、分配部门并且提交投诉等,我相信你一定会很快疯掉。
有了个客服MM后,用户直接和客服打交道,由客服MM替我们完成后继的操作。
在上面的例子里,服务MM的角色就是外观模式中定义的Facade(也有人称之为“门面”)。对于一系列复杂的操作(也就是程序中的子应用),用户并不关心这些操作的细节。这时我们需要提供一个统一访问这些复杂操作的入口,针对各子应用的所有操作都是通过这个入口来完成,对于用户来说,只关心这个入口提供的功能就可以了。
外观模式主要强调两方面的内容,一是所有对子应用的访问必须通过统一的入口来完成,二是这个入口只是被用来访问子应用中复杂的操作,不允许添加其它的业务逻辑。
上面客服MM的例子使用外观模式来实现,代码如下:
[java]
class OperationRegist{
void regist(){
//处理投诉的登记
}
}
class OperationDispatch{
void dispatch(){
//处理投诉的分配
}
}
class OperationSubmit{
void submit(){
//处理投诉的提交
}
}
class OperationFacade{
OperationRegist op1 = new OperationRegist();
OperationDispatch op2 = new OperationDispatch();
OperationSubmit op3 = new OperationSubmit();
void operate(){
op1.regist();
op2.dispatch();
op3.submit();
}
}
作者:fancy888
补充:软件开发 , Java ,