很多年前看过的一本书,有过这么一句话(大意):很多复杂问题的解决都是通过增加中间层来实现的。
比如:应用系统最早是两层架构,数据库的负载往往会很大,通过增加应用服务器来分摊数据库层的压力;
系统集成,点对点的对接,系统间相互的依赖性太大,增加一个中间层(ESB,企业服务总线)实现松耦合性。
开发语言上,想让对象与对象间松耦合,通过增加抽象类(Abstract Class)或者接口来做到。
------------------------------------------------------------------------------------------------------------------------------------------------------------------
松耦合的目标是最小化依赖。松耦合这个概念主要用来处理可伸缩性、灵活性和容错这些需求。
SOA应用于大型分布式系统。对于这样的系统来说,可伸缩性和容错性是可维护性的关键。另一个重要的目标是:最小化修改、故障对系统在整体上的影响。所以,松耦合就成了SOA