如果门面模式是这种的形式:
class A { public void a(){};}class B{ public void b(){};}
那么门面模式构成的简单对象就是:
class C { private A a = new A(); private B b = new B(); public void c(){ a.a(); b.b();};}
那么,我们的客户端的代码就是这样的
public void main(String[] args){ C c = new C(); c.c(); }
那么,我们就能够明白了,所有的代码都是基本的门面模式形式的代码,这样的代码充满了整个世界。
所有的模块都趋向于调用比自身更具体的模块的代码,这样,我们总能够编写更具体的代码定义成模块,来提供给比自身更加抽象的代码的模块来调用。总而言之,这不就是分层的一种思路吗?
spring mvc模式的三层代码,就是最简单的门面模式的代码啊!!!理解了这个,就明白了如何阅读中间件相关的系统的源码了吧!!!把他们理解成门面模式就好阅读了。
那么,我们对于编写复杂的功能的代码的时候,我们可以将任务分解,分配给N个对象来完成,每个对象完成一部分功能就交给其他的对象完成。如果这N个对象中的一个对象的工作依然很复杂,那么就再分配给M个对象来完成,一直递归下去,一直直到分不下去为止。这样,我们就完成了对一个任务的彻底解决了。这不就是算法当中的分治算法吗!!!