介绍
门面的定义为:要求一个子系统的外部与其内部的同行必须通过一个统一的对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。
定义看起来复杂,其实通俗点说就是我开了一个店,你只知道我卖什么产品,并不知道这个店的老板是谁,店的管理是怎么样的,也不知道货物是哪里批发来的,无论何时都不影响你购物。
使用方式
public class SubjectA {
public void doSomething() {
System.out.println("SubjectA doSomething");
}
}
public class SubjectB {
public void doSomething() {
System.out.println("SubjectB doSomething");
}
}
public class Facade {
private SubjectA mSubjectA = new SubjectA();
private SubjectB mSubjectB = new SubjectB();
public void doSomethingA() {
mSubjectA.doSomething();
}
public void doSomethingB() {
mSubjectB.doSomething();
}
}
public class Main {
public static void main(String[] args) throws Exception {
Facade facade = new Facade();
facade.doSomethingA();
facade.doSomethingB();
}
}
结果如下:
SubjectA doSomething
SubjectB doSomething
总结
门面模式在现实生活中到处都有使用,比如老板分管各个部门,他只需要提拔几个干部分别管理就行了,不需要自己去管理每一个员工,遇到事情,直接指派给干部,由干部传到到基层,这样,公司即使壮大了也非常井然有序,因此门面模式是软件工程里必须应用的模式,特别是在软件庞大时尤为注意使用。