正确答案: B
优先使用继承,而不是组合
题目:设计模式(Design Pattem)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。下面关于设计模式所倡导的基本原则的描述,错误的是()
解析:设计模式所倡导的基本原则如下。①开闭原则:一个软件实体应当对扩展开放,对修改关闭。在设计一个模块时,应当使这个模块可以在不被修改的情况下被扩展。关键在于抽象,抽象层要预见所有可能的扩展,因此,抽象层在任何扩展情况下都不会改变,即对修改关闭。同时,由于从抽象层导出一个或多个新类,可以有不同的实现,改变系统的行为,此即为对扩展开发。简而言之,抽象层对修改关闭,通过扩展实现改变系统行为。②里氏代换原则:任何基类可以出现的地方,子类一定可以出现。③依赖原则:要依赖于抽象,而不是具体实现。也可以这样说,要针对接口编程,不要针对实现编程。④接口分离原则:应当为客户端提供尽量小的单独的接口,而不是提供大的接口。⑤组合复用原则:要尽量使用组合,而不是继承关系达到复用目的。⑥迪米特法则:又叫最少知识法则,就是说一个对象应当对其他对象有尽可能少的了解。
查看原题 查看所有试题
学习资料的答案和解析:
[单选题]架构描述语言(Architecture Description Language,ADL)是一种为明确说明软件系统的概念架构和对这些概念架构建模提供功能的语言。ADL主要包括以下组成部分:组件、组件接口、()和架构配置。
连接件
解析:本题主要考查架构描述语言的知识。架构描述语言(Architecture Description Language,ADL)是一种为明确说明软件系统的概念架构和对这些概念架构建模提供功能的语言。ADL主要包括组件、组件接口、连接件和架构配置。ADL对连接件的重视成为区分ADL和其他建模语言的重要特征之一。
[单选题]软件架构设计包括提出架构模型、产生架构设计和进行设计评审等活动,是一个迭代的过程。以下关于软件架构设计活动的描述,错误的是()
软件架构设计活动将已标识构件集成到软件架构中,设计并实现这些构件
解析:软件架构设计包括提出架构模型、产生架构设计和进行设计评审等活动,是一个迭代的过程,在建立软件架构的初期,一般需要选择一个合适的架构风格,并将架构分析阶段已标识的构件映射到架构中,并分析这些构件之间的关系,一旦得到了详细的软件架构设计,需要邀请独立于系统开发的外部人员对系统进行评审。一般来说,软件架构设计活动将已标识构件集成到软件架构中,设计这些构件,但不予以实现。
[单选题]博学公司欲开发一个软件系统的在线文档帮助系统,用户可以在任何一个查询上下文中输入查询关键字,如果当前查询环境下没有相关内容,则系统会将查询按照一定的顺序转发给其他查询环境。基于上述需求,采用()最为合适。
责任链模式
解析:本题主要考查设计模式的理解与应用。根据题干描述,在线文档系统需要根据用户的查询需求逐步将查询请求依次传递,对比4个候选项,其中在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。因此责任链模式是能够满足该要求的最好模式。
[单选题]某公司欲开发一门户网站,将公司的各个分公司及办事处信息进行整合。现决定采用Composite设计模式来实现公司的组织结构关系,并设计了如图12-18所示的UML类图。图中与Composite模式中的Component角色相对应的类是(1),与Composite角色相对应的类是(2)。
解析:本题考查组合模式相关的知识。图12-19为组合模式的UML图例。与题目给出的图例进行匹配可得出。
[单选题]Windows操作系统在图形用户界面处理方面采用的核心架构风格是(1)风格。Java语言宣传的"一次编写,到处运行"的特性,从架构风格上看符合(2)风格的特点。
解析:Windows操作系统在图形用户界面处理方面采用的是典型的"事件驱动"的架构风格。首先注册事件处理的是回调函数,当某个界面事件发生时(如键盘敲击、鼠标移动等),系统会查找并选择合适的回调函数处理该事件。Java语言是一种解释型语言,在Java虚拟机上运行,这从架构风格上看是典型的"虚拟机"风格,即通过虚拟机架构屏蔽不同的硬件环境。
[单选题]软件质量属性通常需要采用特定的设计策略实现。例如,(1)设计策略能提高该系统的可用性,(2)设计策略能够提高该系统的性能,(3)设计策略能够提高该系统的安全性。
解析:本题考查提高质量属性的常见手段。提高可用性的手段包括:命令/响应机制、心跳机制、异常处理机制、冗余机制等。提高性能的手段包括:引入并发、维持数据或计算的多个副本、增加可用资源、控制采样频度、限制执行时间、固定优先级调度等。提高安全性的手段包括:身份认证、限制访问、检测攻击、维护完整性等。