通常,应用包括UI元素、核心应用逻辑、数据库访问以及与外部软硬构件的协作。
尽管OO技术可以用于所有层,但是这里对OOA/D的介绍首要集中于核心应用逻辑层,同时会对其他层进行一些讨论。
对其他层(如UI层)设计的探讨只限于其与应用逻辑层的接口设计上。
为什么要重点探讨核心应用逻辑层的OOA/D?
·其他层通常对技术/平台有极大的依赖性。例如,如果探讨基于Java的Web UI或胖客户UI层的OO设计,我们还需要了解Struts或Swing等框架的细节。但是对于.NET或Python,其选择和细节具有巨大差异。
·相比之下,核心逻辑层的OO设计对各种技术来说是相似的。
·在应用逻辑层语境中学习到的基本OO设计技巧适用于所有其他层或构件。
·当新框架或技术出现时,其他层的设计方法和模式呈现出快速变化的趋势。例如,在20世纪90年代中期,开发者会建立自己的对象-关系数据库访问层。而近年来,他们更倾向于使用免费的开源解决方案,例如Hibernate(如果使用Java技术的话)。
图3-1 面向对象系统中层和对象示例,以及案例研究所关注的部分