j2ee课程设计项目开发指导——第3章达到高内聚低藕合的架构设计目标第1部分内容摘要:

生 被动地 变化 和修改。 3) 不可重用性 —— 系统中的某些模块 很难在别的应用 系统 中 被 重 新使用 ,因为不能将它从现有的应用 系统 中独立地提取出来 (类似“拔出萝卜带出泥”的状况)。 杨教授工作室 精心创作的 优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 6/13 页 下图 为某个系统 持久层中的各个组件的 不合理的 设计和实现方案 的图示, 从图 中所示的数据 库 操作组件和数据 库 连接组件之间的关系来看,两者产生了紧密的藕合关系。 一旦数据 库 连接组件有了任何 变化 (比如连接的方式或者数据库系统类型等) ,数据 库 操作组件都有可能会受其影响而需要被改动 —— 系统 持久层 缺乏灵活性 和太 脆弱。 图 某个系统持久层中的各个组件的不合理的设计和实现方案的图示 为什么要保证系统的体系架构具有良好的可扩展性 企业推广或者应用信息化系统的基本目的是希望能够提高企业的竞争力,但企业 随着业务的发展,如新增业务功能的处理 、 新增服务渠道等 或者由于技术本身的不断进步等方面的原因 , 原有的软件应用系统可能不能完全再满足企业经营的新的要求。 当然,对于软件系统的使用者也不希望抛弃原有的 软件系统,重新开发新的软件系统,因为这将会增加用户方企业的经营成本。 而是希望能够在原有的软件系统的基础上,进一步完善原有的系统功能和进一步地增加新的功能。 一个 合理 的 系统 架构 设计的结果是能够适应用户方的“变化”的要求 , 并且所添加的扩展 功能模块 都可在原有 的系统 架构 的基础上加以实现的 —— 设计人员应该要保证系统分层中的每一层中的各个功能组件都能够扩展。 如果应用 系统的体系架构 设计本身是僵化的,也就是不 具有良好的可扩展性 ,软件 系统 在 升级过程中 将不可避免地要改变 原来的 系统 架构。 而应用系统的体系架构的重新调整,不仅会增 加应用系统代码维护的工作量,也还会带来技术和成本等方面的风险。 什么是系统架构设计中的 可重用性 ( 1)什么是 软件 系统设计中的“ 可重用性 ” 软件 系统 设计中的“可重用性”一般是指软件系统中代码实现的可重用性。 当然,软件设计的可重用性不应该仅仅局限于功能实现的代码方面,也还应该包括系统架构设计方面。 因此,软件系统设计中的“ 可重用性 ”应该体现在“系统结构(分层和分块)”和“代码实现(源程序代码和可执行的功能组件)”两个方面。 如果能够实现系统架构级别上的重用,则能够大大地简化应用系统设计的工作量、减少系统设计中 的错误 ,并减少 系统 测试和调试的时间。 因此,软件系统架构 设计是整个软杨教授工作室 精心创作的 优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 7/13 页 件 系统 开发过程中 比较 关键的一 个环节,并且系统架构 的选择 结果将决定软件 系统 的 成败。 ( 2) 软件系统设计中的可重用性 表现为多 个 不同的 层次 通用和共性的软件模块一般都是由底层的操作系统或开发平台、开发工具所提供的,如通用 API 系统库、平台级别的功能组件、程序模板库等;企业应用系统的开发人员主要专注于解决某一领域的特定的应用问题时的 可重用性 方面。 对这些特定的应用问题,从表面上来看,各个问题都有差别。 但只要对他们进行细分处理后,仍然也会发现有许多共性 之处 —— 将公共的 、相对独立的和稳定不变的 逻辑或模块同特定的逻辑 相互 分开。 比如各个商业银行中的账户管理系统,都应该提供“存钱”、“取钱”和“转账”等方面的功能。 ( 3)在面向对象编程中实现类级别重用的基本方法 在面向对象编程实现中 有两种方法可以重用类: 其 一是创建该类的 对象 实例, 并通过该对象实例 直接使用 类中的方法 ; 而 另一种方法 便 是 继承该类以 派生出一个满足需要的 子类。 面向对象编程技术中的 继承机制不仅可以重用 基 类的数据结构和 功能方法的 程序代码,而且 还 可以在 基 类的基础上 根据具体的需要进行 修改和扩充 —— 通过新增、覆盖 或者重载等形式。 如何保证系统架构设计结果 的可扩展性和 可重用 性 良好的 可重用性 软件系统 架构设计 结果的主要体现 可重用性 的软件系统 架构设计 结果主要体现在如下两个方面 —— 本项目的系统架构设计的结果是可 重用 的和在本项目的系统架构设计中 重用 成熟的系统架构 设计 方案。 当然,要能够达到这样的设计效果,需要设计人员充分地应用面向对象技术中的抽象机制, 对 系统中共性的部分 进行充分的抽取。 而为了能够 保证系统架构设计结果是 可扩展的,必须要应用“封装”和“隔离”的设计手段、并且遵守一些相关的 设计原则和 应用典型的 设计模式。 下面 为读者详细介绍如何保证软件系统的系统架构设计结果具有良好的可扩展性和可 重用 性。 软件系统的纵向结构需要分层和隔离 ( 1) 纵向分层和隔离 层 ( Layer) 是对 软件系统中的功能模块和 类、或子系统 等 粗粒度的分组 机制 , 每一层具有相对独立和 内聚的职责 —— 各层之间的 依赖 关系应该 是逐层向下而不能跨层 产生 依赖杨教授工作室 精心创作的 优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 8/13 页 关系;而且 只能 是 上层依赖 于下 层 、 而不能 让下 层反过来依赖 于 上层。 ( 2) 合理地 对软件系统在纵向方向进行分 层 隔离 设计 通过合理地 对软件系统在纵向方向进行分 层 隔离 设计 —— 如目前的 C/S 和 B/S 等 架构模式 中的各个分层策略 , 将允许设计人员将复杂 的应用 系统中所涉及的各个方面的问题分解成 多个不同 层次 的实现。 每一层最多只影响其相关联的上、下两层,同时只要给相邻的上、下层提。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。