IOC
IOC 是Inversion of Control的简称。它的原理是基于OO设计原则的好莱坞原则(The Hollywood Principle):不要访问我,我们将访问你。也就是说,所有的组件都是被动的(Passive),所有的组件初始化和调用都由容器负责。
在Brian Foote的论文( http://www.laputan.org/drc/drc.html)中解释了IOC的概念。
IOC有几种实现的类型,包括基于方法参数调用的Method-based (M) IoC,它把组件传递给每个方法调用;基于接口的Interface-based (I) IoC(通常称为类型1),它使用接口来声明组件之间的依赖性,例如,Serviceable, Configurable;基于Setter方法的Setter-based (S) IoC(通常称为类型2),它使用setter方法来设置组件之间的依赖性;基于构造函数的Constructor-based (C) IoC(通常称为类型3)。
服务并不是什么新颖的概念,RPC、IDL都是类似的技术。但我们谈的服务侧重架构和理念,不涉及到具体的技术,这一点同SOA和WebService的关系类似-SOA是一个结构性的概念,而WebService是实现SOA的一种适合的技术。 Stairway to Heaven - Service Oriented Architectures(http://www.enterpriseintegrationpatterns.com/docs/stairwaytoheaven.pdf)一文讨论了SOA需要注意的问题,并提出了实现SOA的三个阶段,本文所讨论的服务为文中所讨论的阶段3,也是最理想的阶段。
Patterns and Best Practices for Enterprise Integration ( http://www.enterpriseintegrationpatterns.com/)中收集整理了大量有价值的和消息相关的企业集成模式
软件工厂在组件和软件总线的基础上发展,并根据组件和软件总线的技术特点,定义了一系列的管理活动,以提高开发效率。软件工厂是我们定义的软件质量框架的一种实现方式。对于不同的软件组织来说,根据自身的研发特点来定义软件工厂的构成是非常重要的。具体的内容包括管理实践的选择,组件的积累,软件总线的技术实现。在本系列文章中推荐的前两项实践都属于管理实践范畴的内容,而第三项实践则偏重于建立软件工厂的底层支撑框架。