2015年软考系统架构设计师学习笔记第九章(2)
发布时间:2010/12/4 22:29:53 来源:城市学习网 编辑:ziteng
3、构件与对象
构件通常包含了若干类 或 不可更改的 原型对象。还包括一系列对象。
但构件并非一定要包含类元素,它甚至可以不包含类,可以拥有传统过程体,甚至全局变量。
构件创建的对象——更确切地说是对这些对象的 引用——可以与该构件分离开来,并对构件的客户可见。构件的客户通常是指其他构件。
一个构件可以包含多个类元素,但是一个类元素只能属于一个构建。将一个类拆分进行部署通常没有什么意义。
4、模块
模块化方法成熟的标志是其对分离编译技术的支持,包括跨模块的正确的类型检查能力。
模块没有实例化的概念,在任何情况下,模块都可以包含多个类。类之间的继承关系并不受模块界限的限制。
模块本身就可以作为一个最简单的构件,这些库是功能性的,而不是面向对象的。
资源可以参数化一个构件,重新配置该构件而无需更改构件代码,例如,本地化设置可以通过资源配置实现。
某些情况下,模块并不适合作为构件,构件没有外部可见的状态,但是模块却可以显式地用全局变量来使其状态可见。
5、白盒抽象、黑盒抽象 与 重用 白盒抽象中,可以通过继承对构件的实现细节进行修改,白盒方式中实现细节对外界是完全可见的。
绝大多数系统中,(Application Programming Interface,API)相当于黑盒重用这些接口的实现。
白盒重用不可以轻易地被另外的软件替换,因为 依赖于 细节。
软件构件是一种组装单元,它具有规范的接口规约和显式的语境依赖,软件构件可以被独立地部署并由第三方任意地组装。
6、接口
接口是一个已命名的一组操作集合。
一个构件可以有多个接口,每个接口提供一种服务。
尽量不要重复引入功能相近的接口。
推行标准化,可能会由于笨拙官僚的“委员会设计”问题而不能达到最优;市场竞争,的 非技术本质 也可能导致结果不是最优。
接口标准化 是对消息的 格式、模式、协议 的标准化,XML 提供了一种统一的数据格式。 [NextPage] 6、构件与生成式编程
必须要精确控制实际的构件边界,包括提供接口和需求接口,必须能精确控制同其他构件间的静态依赖。
9.3.2 语境相关组合构建框架
COM+ 增加了可租赁线程“套间”的概念,一次只允许一个线程入住,但是多个线程能顺序地入住该“套间”。
相同事务域中的对象 共享一个单独的逻辑线程和一个单独共享事务资源集合,一旦线程从事务域中返回,事务要么提交要么终止。
COM+中,如果两个构件共享一组兼容的语境属性集,则它们可以被看作是处于同一域中。
9.3.3 构件开发
异步问题
事件分发机制负责接收这些事件对象,并把它们发送给对其感兴趣的其他构件实例。
多线程
多线程主要关注于对程序执行进行更好的分配,获取性能最大化的手段却根本不依赖于多线程,而是尽量在第一时间内以最快的速度处理用户的请求。