扫一扫二维码
进群一起备考
查看更多
当前 - 选择题 - 基于构件的软件工程困难
单选题
2017年11月第26题
困难
单选题
2017年11月第26题
#第二版教材
#必须掌握
软件构件是一个独立可部署的软件单元,与程序设计中的对象不同,构件(__)。
问题(1)
浓缩知识点
基于构件的软件工程中,构件是独立可部署的软件单元,与面向对象体系中的对象存在核心差异。对象是类的实例,具备唯一标识,依靠构造函数等工厂方法完成实例化,不同对象还可能共享类的静态成员。而构件并非单个实例单元,为保障自身独立性与封装性,构件之间不会共享类元素,其实例化通常由容器或部署机制负责,而非依赖自身构造函数直接创建,且构件自身不会直接暴露外部可见状态,需借助运行时容器,比如应用服务器、各类开发框架,来管理并对外提供状态可见性。
正确答案
B
本题考察的是基于构件的软件工程中构件与对象的区别。
构件和对象在概念、状态管理以及部署方式上都有显著不同。
A选项是一个实例单元,具有唯一的标志:这是面向对象编程中对象的特征,对象是类的实例,有唯一标识(如内存地址)。构件是独立部署单元,而非单个实例单元,因此错误。
B选项可以利用容器管理自身对外的可见状态:构件本身不直接暴露外部可见状态,但可以通过运行时容器(如应用服务器、框架等)管理状态并对外提供可见性,这是构件特有的实现方式,正确。
C选项利用工厂方法(如构造函数)来创建自己的实例:这是对象实例化的方式,而构件作为可部署单元,其实例化通常由容器或部署机制负责,不依赖构造函数直接创建,错误。
D选项之间可以共享一个类元素:对象可能共享类的静态成员,但构件为了保持独立性与封装性,不会共享类元素,错误。
因此,选项 B 正确。
