Slide 5
以前对于这个问题的方法是采用包(请参考拙作面向对
象软件开发中对包的相关讨论)作为容器来组织对象,
对象之间的依赖性将转化为包之间的依赖性。这种方法
听起来有道理,但是在实际中仍会出现难以解决的问题
。
包仅仅只是容器。这意味着对对象的组织可以是任意的
,而包之间依赖关系的设计则还是取决于对象的依赖。
此外,包的设计和对象一样,缺乏一个统一的风格。而
统一的风格正是大规模软件设计所必须的,因为这样可
以有效改进系统的可理解性,这一点非常重要。
Slide 6
面向组件编程
面向组件编程的缩写是COP。COP是对OOP的补充,帮助实现更加
优秀的软件结构。组件的粒度可大可小,需要取决于具体的应用
。
在COP中有几个重要的概念:服务,服务(Service)是一组接口
,供客户端程序使用。例如,验证和授权服务,任务调度服务。服
务是系统中各个部件相互调用的接口;组件,组件(Component)
实现了一组服务,此外,组件必须符合容器订立的规范,例如,初
始化,配置、销毁。
COP是对一种组织代码的思路,尤其是服务和组件这两个概念。在
下文会提到的Spring框架中,就采用了COP的思路,将系统看作一
个个的组件,通过定义组件之间的协作关系(通过服务)来完成系
统的构建。这样做的好处是能够隔离变化,合理的划分系统。而框
架的意义就在于定义一个组织组件的方式。
3