【面向对象方法试题1】解析 一、错误与不当之处分析 1. COM组件的QueryInterface函数:虽然COM组件的接口是公开的,但QueryInterface用于动态获取接口,以适应未知或新添加的接口,因此它是必要的,允许客户程序发现和使用组件的额外功能。 2. COM组件接口标识:IUnknown接口的唯一标识并不是为了区分不同组件的IUnknown接口,而是为了标识不同的接口。所有COM组件都必须实现IUnknown,但接口ID(IID)是区分不同接口的关键。 3. 接口不变性:虽然新版本的组件不能改变旧接口,但可以通过添加新接口来扩展功能,这并不意味着不能修改已有功能。通过实现新的接口,旧功能可以在新版本中得到改进或调整。 4. COM组件与动态链接库:COM组件支持动态链接是因为它们可以利用DLL,但这并不是动态连接的根本原因。COM的动态性来自于接口和IUnknown,允许在运行时发现和调用组件服务。 5. IDL编译器与接口实现:IDL编译器生成的stub类提供了接口的调用约定,但并不生成具体类的实现。程序员仍需为接口提供具体代码。 6. EJB容器管理生命周期:EJB容器确实管理bean对象的生命周期,但程序员仍需要定义构造函数和析构函数,因为容器仅负责调用,而不负责实现。 7. 会话bean接口:会话bean的组件业务接口和home接口的实现通常由EJB容器处理,但接口定义和业务逻辑仍需由开发者完成。 8. RUP中的包:包是组织模型元素的方式,可以包含设计元素并作为交付单元。但在RUP中,迭代过程中的任务描述并不精确,应理解为迭代涵盖多个任务,而不是严格按顺序执行。 9. RUP迭代过程:RUP迭代通常涉及需求、架构、用例、设计等,但实际开发中可以灵活调整,将不同任务合并到一个迭代中。 10. 补充用例说明:补充性文档说明用于扩展用例描述,提供详细步骤和业务规则,是用例分析的重要部分。 二、组件技术问题 1. 动态链接库实现COM组件:导出函数应使用__declspec(dllexport)宏,并声明对应的接口函数,确保客户端通过DLL接口访问。 2. IDL编译CORBA组件:编写IDL文件定义接口;然后,使用IDL编译器生成目标语言的代理和桩代码;接着,实现接口;客户端引用生成的代理代码以交互。 3. EJB部署描述文件:描述组件的配置信息,包括组件类型、接口、安全策略、资源引用等,服务器根据部署描述文件实例化和管理EJB。 三、概念对比 1. 设计机制与设计模式:设计机制是解决问题的基本方法,而设计模式是经过验证的、可重用的设计解决方案,两者都是设计过程的一部分,设计模式更侧重于通用解决方案。 2. 软件体系结构与设计框架:体系结构关注系统的高层次组件和它们之间的关系,而设计框架提供实现这些体系结构的详细指导,是实现层面的结构。 3. 用例与脚本:用例描述用户的目标和系统响应,是业务流程的抽象;脚本是用例的具体执行序列,更详细,可能包含多个用例的组合。 4. 中间件与子系统:中间件提供服务和通信机制,支持分布式系统的构建;子系统是大型软件系统中可独立开发和测试的部分,可以是中间件的一部分。 四、分析类图 男性(Male)与女性(Female)之间的1:1双向关联表示婚姻关系,每个男性和女性可以与另一个性别对应的人有一个婚姻关系。这种关系是互逆的,意味着男性可以是婚姻关系的一方,女性也可以是另一方。此外,这种关系是唯一确定的,即每个人只有一个配偶。
- 粉丝: 33
- 资源: 327
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
评论0