版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象分析与设计习题
一、单项选择题
1.到20世纪末,面向对象软件工程已经逐渐发展成熟,尤其是(D)的
形成和广泛使用,采用面向对象分析与编程的软件开发措施已成为软件开发n勺主流措施。
A.Simula67语言B.Smalltalk语言
C.Java语言D.统一建模语言(UML)的原则
2.面向对象的运动产生了多种面向对象的语言,其中(C)是一种混合性面向对象语言,既
支持面向过程口勺程序设计措施,又支持面向对象B勺程序设计措施,有广泛应用的基础和丰富
开发环境日勺支持,因而使面向对象H勺程序设计能得到很快普及。
A.SmalltalkB.EiffelC.C++D.Java
3.下列不属于面向对象技术日勺基本特性口勺是(B)。
A,封装性B.模块性C.多态性D.继承性
4.面向对象程序设计将描述事物的数据与(C)封装在一起,作为一种互相依存、不可分割口勺
整体来处理。
A.信息B.数据隐藏C.对数据的操作D.数据抽象
5.有关面向对象措施的长处,下列不对的H勺论述是(C)。
A,与人类习惯的思维措施比较一致B.可重用性好
C.以数据操作为中心D.可维护性好
6.(D)是从顾客使用系统的角度描述系统功能的图形曲现措施。
A.类图B.对象图C.序列图D.用例图
7.(C)是体现系统类及其互相联络H勺图示,它是面向对象设计日勺关键,建立状态图、协作图
和其他图H勺基础。
A.对象图B.组件图C.类图D.配置图
8.(D)描述了一组交互对象间的动态协作关系,它表达完毕某项行为口勺对象和这些对象之
间传递消息H勺时间次序.
A.对象图B.协作图C.状态图D.序列图
9.(D)就是用于表达构成分布式系统的节点集和节点之间的联络H勺图示,它可以表达系统
中软件和硬件的物理架构。
A.组件图B.协作图C.状态图D.配置图
10.使用UML进行关系数据库的(B)时,需要设计出体现持久数据的I实体类及其联络,
并把它们映射成为关系数据库表(Table).视图(View)等。
A.业务UseCase模型设计B.逻辑数据模型设计
C.物理数据模型设计C.物理实现设计
11.一种设计得好口勺00系统具有(B)
A.低内聚、低耦合的特性B.高内聚、低耦合的特性
C.高内聚、高耦合的特性D.低内聚、高耦合的特性
12.下面()不足UMLII勺基本构成元素。(A)
A.控制语言B.基本构造块C.规则D.公共机制
13.面向对象的特点重要概括为(C)o
A.可分解性、可组合性、可分类性B.继承性、封装性、多态性
C.抽象性、继承性、封装性、多态性D.封装性、易维护性、可扩展性、可重用性
14.构成对象H勺两个重要原因是(A)o
A.属性和服务B.标识和内容C.继承和多态D.消息和封装
15.下列有关面向对象措施中描述中错误的是(C)o
A.使用设计模式有助于在软件开发中应用面向对象技术
B.选择面向对象程序设计语言时需要考虑开发人员对其的熟悉程度
C.UML作为一种可视化建模语言需要与RUP开发过程同步使用
D.目前在软件生命周期日勺分析、设计、实现和测试中均可以应用面向对象措施
16.次序图重要可认为设计人员提供(A)信息。
A.消息发送的次序B.某个措施的•执行流程
C.类之间关联关系的多重性D.某个对象在不一样状态之间口勺转移
17.类和接口日勺关系类似于下面哪种类型的关系(D)o
A.关联(association)和汇集(aggregation)
B.关联(association)和组合(composition)
C.脚本(scenario)和用例(usecase)
D.包(Package)和子系统(subsystem)
18.在类图中,那个类图中的类Order所生成的代码具有
PublicclassOrder
PublicCustomerrecipient;
)
的形式?(A)
+recipient|
CustorY)erB.Swecipie叫Coomer
A.再
(A)(注:活动图可以用来描述细节)
A.活动图B.状态图C.类图D.用例图
23.计算机(Computer)由中央处理器、内存、软盘、硬盘、显示屏、键盘、鼠标等构成。
那么Computer类和其他类(CPU、RAM、FloppyDrive^HardDisk>MonitorKeyboardMeuse)
之间欧I关系是:(【))
A.泛化关系(Generalization)B.实现关系(Realization)
C.包括关系(Inclusion)D.汇集关系(Aggregation)
24.在状态图中不能表达下面那些概念?(D)
A.动作(action)B.事件(event)C.转移(transition)D.类(class)
25.在数据库设计的阶段开始考虑详细的数据库管理系统(DBMS)口勺特性。(C)
A.需求分析B.概念设计C.逻辑设计.D物理设计
26.在UUL中,有3种基本构造块,分别是(A)
A.事物、关系和图B.注释、关系和图
C.事物、关系和构造D.注释、关系和构造
27.在UML中,有四种关系,下面哪个不是(B)
A.依赖关系B.继承关系C.泛化关系D.实现关系
28.下面哪个不是UML中的静态视图()
A.状态图B.用例图C.对象图D.类图
29.在用例之间,会有三种不一样的关系,下列哪个不是它们之间也许II勺关系(D)
A包括(include)B.扩展(extend)
C.泛化(generalization)D.关联(connect)
30.用例(Use-case)用来描述系统在事件做出响应时所采用aI行动。用例之间是具有有关
性的。在一种“订单输入子系统”中,创立新订单和更新订单都需要检杳顾客帐号与否对H勺。
那么,用例”创立新订单”、“更新订单”与用例“检查顾客帐号”之间是(B)关系
A.扩展(extend)B.包括(include)
C.分类(classification)【).汇集(aggregation)
31.UML中类的有三种,下面哪个不是其中之一(B)
A.实体类B.拍象类C.控制类D.边界类
32.阅读图例,判断下列哪个说法是错误的。(c)
交纳罚金
A.读者可以使用系统的还书用例
B.每次执行还书用例都要执行图书查询用例
C.每次执行还书用例都要执行交纳罚金用例
D.执行还书用例有也许既执行图书查询用例,又执行交纳罚金用例
33.有关协作图日勺描述,下列哪个不对的(B)
A.协作图作为一种交互图,强调口勺是参与交互日勺对象的组织;
B.协作图是次序图的一种特例
C.协作图中有消息流时次序号;
D.在ROSE工具中,协作图可在次序图的I基础上按“F5”键自动生成;
34.设计模式具有日勺长处(a)o
A.适应需求变化B.程序易于理解
C.减少开发过程中的代码开发工作量D.简化软件系统H勺设计
35.设计模式一般用来处理什么样的问题(a)。
A.同一问题W、J不一样表相B不一样问题W、J同一表相
C.不一样问题的不一洋表相D.以上都不是
36.设计模式的两大主题是(d)。
A.系统的维护与开发B对象组合与类的继承
C.系统架构与系统开发D.系统更用与系统扩展
37.如下哪些问题通过应用设计模式不可以处理。(c)
A)指定对象的接口B)针对接口编程
C)确定软件的功能都对口勺实现D)设计应支持变化
38.外观模式的作用是(b)»
A.当不能采用生成子类口勺措施进行扩充时,动态地给一种对象添加某些额外的功能。
B.为了系统中的一组功能调用提供一种一致口勺接口,这个接口使得这一子系统愈加轻
易使用。
C.保证一种类仅有一种实例,并提供一种访问他的全局访问点。
D.在措施中定义算法口勺框架,而将算法中H勺某些操作环节延迟到子类中实现。
39.Facade(外观)模式的意图是(a)。
A.但愿简化既有系统的)使用措施。你需要定义自己日勺借口。
B.将一种无法控制的既有对象与一种特定借II相切配。
C.将一组实现部分从另一组使用它们的对象中分离出来。
D.你需要为特定的客户(或状况)提供特定系列的对象。
40.Adapter(适配器)模式H勺意图是(B)。
A.但愿简化既有系统的使用措施。你需要定义自己的借口。
B.将一种无法控制的既有对象与一种特定借口相匹配。
C,将一组实现部分从另一组使用它们的对象中分离出来。
D.你需要为特定的客户(或状况)提供特定系列的对象。
41.下面不属于创立型模式的有(C)。
A.抽象工厂模式(AbstractFactory)
B.工厂措施模式(FactoryMethod)
C.适配器模式(Adapter)
D.单例模式(Singleton)
42.将一种类的接口转换成客户但愿H勺另一种接口。这句话是对下列哪种模式H勺描述(C)o
A.方略模式(Strategies)
B.桥接模式(Bridge)
C.适配器模式(Adapter)
D.单例模式(Singleton)
43.如下有关构造型模式说法不对时的是.(B)
A)构造型模式可以在不破坏类封装性的基础上,实现新的功能。
B)构造型模式重要用于创立一-组对象。
C)构造型模式可以创立一组类的统一访问接U。
D)构造型模式可以在不破坏类封装性日勺基础上,使得类可以同不曾估计到的系统进行
交互。
44.有关继承表述错误的是:(D)。
A.继承是一种通过扩展一种已经有对象H勺实现,从而获得新功能的复用措施。
B.泛化类(超类)可以显式地捕捉那些公共的属性和措施。特殊类(子类)则通过附加
属性和措施来进行实现的扩展。
C.在一定意义上说破坏了封装性,由于这会将父类的实现细节暴露给子类。
D.继承本质上是“白盒复用”,对父类的修改,不会影响到子类。
45.在不破坏类封装性的基础上,使得类可以同不曾估计到欧I系统进行交互。重要体目前
(D
)o
A外观模式(Facade)B装饰模式(Decorator)
C方略模式(Strategies)D桥接模式(Bridge)
46.行为类模式使用(B)在类间分派行为。
A接口B继承机制C对象组合D委托
47.下面H勺类图表达的是哪个设计模式?(D)。
A抽象工厂模式(AbstractFactory)B观测者模式(Observer)
C方略模式(Strategies)D桥接模式(Bridge)
48.Bridge(桥接)模式的意图是(C)。
A.但愿简化既有系统的使用措施。你需要定义自己的借口。
B.将一种无法控制的既有对象与一种特定借口相以配。
C.将一-组实现部分从另一组使用它们的对象中分离由来。
D.你需要为特定的客户(或状况)提供特定系列的对象。
49.静态工厂的关键角色是(A)。
A.抽象产品
B.详细产品
C.静态工厂
D.消费者
50.如下属于创立型模式的是(A)o
A抽象工厂模式(AbstractFactory)B装饰模式(Decorator)
C外观模式(Facade)D桥接模式(Bridge)
51.下面的类图表达U勺是哪个设计模式?(A)。
A抽象工厂模式B观测者模式
C方略模式D桥接模式
Client
52.AbstractFactory(抽象工厂)模式的意图是(D)。
A.但愿简化既有系统的使用措施。你需要定义自己日勺借II.
B.将一种无法控制口勺既有对象与一种特定借口相以配。
C.将一组实现部分从另一组使用它们的对象中分离出来。
D.提供一种创立一系列有关或互相依赖对象H勺接口,而无需指定它们详细的类
53.在根据不一样日勺机器选择设备驱动程序日勺案例中,如下论述不精确H勺是(D)。
A.可以使用switch语句选择驱动程序.
B.可以使用继承来实现选择驱动程序,但它也许会产生类组合爆炸问题..
C.可以选择抽象工厂模式实现,且能防止组合爆炸问题.
D.使用继承日勺处理方案要比switch语句有更多口勺优势.
54.应用设计模式H勺一种长处是(A)。
A.适应需求变化B.程序易于理解
C.减少开发过程中的代码开发工作量D.简化软件系统的设计
55.当我们想创立一种详细的对象而乂不但愿指定详细的类时,可以使用(A)模式。
A.创立型B.构造型C行为型D.以上都可以
56.在观测者模式中,表述错误的是(C)。
A.观测者角色的更新是被动的。
B.被观测者可以告知观测者进行更新
C.观测者可以变化被观测者的状态,再由被观测者告知所有观测者根据被观测者的状态
进行。
D.以上表述所有错误,
57.下面的类图表达口勺是哪个设计模式?(D)。
A方略模式(Strategies)B装饰模式(Deccralor)
C桥接模式(Bridge)D观测者模式(Observer)
58.当我们想创立一种详细的对象而又不但愿指定详细的类时,可以使用(A)模式。
A.创立型B.构造型
C行为型D.以上都可以
59.下列模式中,属于行为模式口勺是(B)。
A.工厂模式B观测者
C适配器D以上都是
60.Observer模式不合用于(D)。
A当一种抽象模型存在两个方面,其中一种方面依赖于另首先,将这两者封装在独立口勺
对象中以使它们可以各自独立II勺变化和复用。
B当对一种对象的变化需要同步变化其他对象,而不懂得详细有多少个对象有待变化
时。
C当一种对象必须告知其他对象,而它又不能假定其他对象是谁,也就是说你不但愿这
些
对■象是紧耦合於J。
D一种对象构造包括渚多类对象,它们有不一样口勺接口,而想对这些对象实行某些依赖
于其详细类的操作。
二、判断题
1.一种状态图最多只能由一种初态和一种终态。(F)
2.协作图中的消息必须要有消息次序号。(T)
3.两个参与者(actor)之间可以有包括(include)关系、扩展(extend)关系或泛化
(generalization)关系,而包括关系和扩展关系是依颇(dependency)关系H勺版型。(F)
4.参与者(actor)和用例(usecase)之间的关系是关联(association)关系。(T)
5.类A和类B之间的关系如图1所示,则称类B中日勺getName()措施是对类A中的JgctNamc()
措施的重载(overload)e(F)
6.如图2所示,活动Gesture和Streamaudio可以并发进行。(T)
7.一种软件系统,假如只有源代码,缺乏其他对应的I辅助文档,如缺乏次序图和类图,则
可以运用Rose进行逆向工程得到次序图和类图,但得到的次序图和类图会比较简朴。(F)
8.CMM描述了五个级别的软件过程成熟度,即初始级、可反复级、已定义、己管理级、优
化级。(T)
9.UML由用例视图、物理视图、组件视图、进度视图和配置视图构成。(F)
10.在设计类图时,可以不用对类图中的每个关联进行命名,但假如需要命名H勺话,最佳用
一种“动词”给关联命名,(T)
II.适配器模式属于创立型模式。(F)
12.在设计模式中,“效果”只是指“原因和成果(T)
13.设计模式使代码编制不能真正工程化。(F)
14.设计模式的两大主题是系统复用与系统扩展。(T)
15.Faqade(外观)模式不仅可认为措施调用创立更简朴的接口,还可以减少客户必须处理
的对象数量。(T)
16.外观模式,当不能采月生成子类口勺措施进行扩充时,动态地给一种对象添加某些额外的
功能。(F)
17.Faqade模式为子系统中的一组接口提供的I界面也许不一致。(F)
18.Fagade外观模式只能为措施调用创立更简朴的接口,不能减少客户必须处理的对象数量
。(F)
19.对象适配器模式是合成聚合复用原则U勺经典应用。(T)
20.Adapter模式使原本由于接口不兼容而不能一起工作的那些类可以一起工作。(T)
21.Facade模式和Adapter模式是相似类型的包装器。(F)
22.Adapter模式不是必须外对某个接口进行设计。(F)
23.继承本质上是“白盒复用”,对父类的修改,不会影响到子类。(F)
24.继承是一种通过扩展一种已经有对象H勺实现,从而获得新功能的J复用措施。(t)
25.抽象工厂模式提供了一系列有关或互相依赖对象的接口且必须指定他们详细H勺类。(F)
26.AbstractFactory(抽象工厂)模式保证系统总能根据目前的状况获得合适的对象。(T)
27.在AbstractFactory(抽象工厂)模式中,客户对象不需要懂得“向谁祈求需要的对象”
“怎样使用这些对象”。(F)
28.Decorator(装饰)模式U勺意图是为一种对象连接附加的职责。(F)
29.每个Decorator对象在被装饰的功能之前或之后执行自己的附加功能。(T)
30.Decorator(装饰)模式合用性是表达对象U勺部分-整体层次构造。(F)
三、填空题
1.面向对象开发措施一改正去老式欧I以—功能分析—为基础口勺—面向过程—的构造化
分析与设计措施,它模拟人们理解和处理客观世界日勺方式来分析问题,把系统视为一系列
_对象/勺集合,其_面向对象的设计_乂将分析口勺成果映射到某种面向对象实现工具H勺构
造上,使映射过程有着比较直接口勺对应关系,使分析者、设计者和编程者都可使用相似的L
概念;从而使面向对象的软件开发能比较自然地模拟客观世界H勺活动,使问题描述空间与
—解空间—在构造上尽量一致。因此,采用面向对象措施可以更有效地开发大型软件系统。
面向对象措施口勺一封装_、_继承_、_多态_等机制不仅支持软件复用,并且使软件维护工作
可靠有效,可实现软件系统的J柔性制造,更好地克服—软件危机因此,它已成为成熟的
广为采用的I软件开发措施,
2.对象是客观实体日勺抽象表达,是由—描述对象属性的数据_和_对这些数据进行的操作
行为—两部分构成。而_类_是对具有相似属性和行为口勺一组对象的抽象描述。因此,它可
作为一种顾客自定义类型和创立对象口勺样板,而按照这种样板所创立日勺一种个详细对象就是
类的—实例通过一继承_关系乂可形成一种类层次构造。
3.UML中用于描述系统的静态建模H勺视图称为静态视图,包括一用例图_、
一类图一、_对象图_、—包图―和—构件图一。
4.UML从不一样的视角为系统架构建模,可产生九种视图:
5.是用来反应若干个对象之间动态协作关系的一种交互图。它重要反应
对象之间已发送消息的先后次序和对象之间的交互过程.是用来描述实
现某些服务所波及H勺对象及其互相之间的关系(包括消息通信)的动态视图。建模者可以选择
来反应对象之间的协作关系;假如需要强调时间和序
列,最佳选择;假如需要强调上下文有关,最佳选择
6.适配器模式,分为类的适配器和对象的适配器两种实现。其中类的适配器采用的是魅承
关系,而对象适配器采用的是(组合聚合)关系。
7.Adapter模式有两种类型有:对象Adapter模式、(类Adapter模式)。
8.UML是一种用来创立(程序模型)H勺图像语言。
9.(Adapter适配器)模式使原本接口不兼容而不能一起工作的类可以一起工作。
10.适配器模式,分为类叼适配器和对象的适配器两种实现。其中类日勺适配器采用的是(继
承)关系,而对象适配器采用的是组合聚类关系。
11.在存在继承关系H勺状况下,措施向(超类方向)集中,而数据向(子类)方向集中。
12.在进行设计以应对变化U勺过程中,应当遵照两条基本方略:找出变化并(封装变化点);
优先使用对象组合,而不是类继承。
13.封装性好的代码更轻易测试,由于它与其他代码没有(耦合)。
14.(抽象工厂)模式提供了一系列有关或互相依赖对象的接口而无需指定他们详细的类。
15.工厂模式分为简朴工厂,工厂措施,(工厂措施)三种类型。
四.简答题
1.简述面向对象软件开发措施的长处。
2.简述面向对象技术口勺三大机制。
答:(1)封装性(encapsulalion)
所谓封装就是把对象的属性和行为结合成一种独立的单位,使外界不能直接访问或修改
这些数据和代码,外界只能通过对象提供的接口函数来变化或获取对象H勺属性数据,这
就实现了消息隐蔽。
(2)继承性
假如在一种已定义日勺类.匕增长某些特殊属性或操作,可以形成•种新的类,这个类不
仅继承了前一种类的所有特性,并且具有新H勺特性,因此可看作前一种类H勺特例,是对前
一种类的I继承。前一种类称为父类,新产生的类叫做子类。通过继承关系可形成一种类层
次构造,叫做继承构造,
(3)多态性
在类层次构造H勺不一样类中,可用相似的函数名实现功能不一样的函数.
3.简述00A模型的层次构造。
答:00A模型采用五层次构造,它们分别是:
(1)对象-类层
划分待开发系统及其环境信息的基本构造单位,标H反应问题域的对象和类,并用符号
进行规范的描述,用信息提供者熟悉的术语为对象和类命名。
(2)属性层
定义对象和某些构造中的数据单元,继承构造中所有类的公共属性可放于通用类中。标
识对象类必需H勺属性并放在合适H勺继承层次上,属性的特殊限制和实例连接关系也应标识出
来。
(3)服务层
表达对象的服务或行为,即是要定义类上的操作。
(4)构造层
标识现实世界中对象之间的关系。当一种对象是另一种对象U勺一部分时,用”整体-部分
”关系表达;当一种类属于另•种类时,用类之间继承关系表达。
(5)主题层
可将有关类或对象划分为一种主题。
4.简述00D模型H勺总体构造,并画图表达。
OOD体系构造H勺各个部分内容:
(1)问题论域部分,在OOA模型的基础上,细化分析成果,设计一组构成底层应用模型的类和对
象。
(2)人机交互部分:设计顾客界面模型,该顾客界面模型中的类和对象提供实现人机交互操
作的接口函数。顾客界面设计包括菜单设计、窗口设计、输入/输出界面设计等等。
(3)任务管理部分:建立某些类,用以负责处理操作系统级的并发问题、中断、调度以及
其他与特定平台有关的问题。
(4)数据管理部分:提供数据管理系统中存储和检索龙象的J基本构造,包括对永久性数据
日勺访问和管理。数据管理设计包括:
数据寄存设计:数据寄存设计选择数据寄存的方式(文献寄存、关系数据库表格寄
存或面向对象H勺数据库寄存)。
-设计对应H勺操作,为每个需要存储的对象和类增长用于存储管理H勺属性和操作,在
类和对象的定义中加以描述。
问
人
任
数
题
机
务
据
论
交
皆*
城
互
现
理
部
部
部
部
分
分
分
分
类边界
class&objectlayer
实例边界
(类及对徽层)
实例连接
attributelayer一*
(美及对象山)
JH性
消息
servicelayer
(服务层)
structiavcr
(结构层)
subjectlayer
(主・屋)
图1.5OOD模型的总体结构
5.分析下面的类图,画出新日勺类图,将原图中日勺多对多关系转换为1:M(一对多)关系。
1..n购买1..n顾客
g顾客编号
答案:
|商店|
购买
物量
砂勾买日期
。价钱
6.信用卡也许处在“开放”和“关闭”状态,其中“开放”状态可以直接进入“关闭”状
态,而从“关闭”状态必须提供密码验证才能进入“开放”状态。“开放”状态又包括“透
支”和“正常”状态之间内变化,当剩余金额少于零、或者使用额度不小于剩余金额、或者
结算余额不不小于零时进入透支状态,反之则为正常状态。画出信用卡日勺状态图。(6分)
7.请判断如下类图中的类关系与否合适,并阐明理由。
(1)K机有机翼、机身、驾驶舱
(2)商场里的电器。1台电器可以
是1台洗衣机,也可以不是;1台
电器可以是1台电视机,也可以不
是;1台电器可以是1台空调,也
(3)企业的员工诸多,包括程序员、分析员、项目经
可以不是;
理……
(1)飞机有机翼、机身、驾驶舱
应改为“组合”
(2)商场里的电器。1台电器可以是1台洗衣机,也可以不是;1台电器可以是1台电视机,
也可以不是;1台电器可以是1台空调,也可以不是;
应当为“泛化”
(3)企业的员工诸多,包括程序员、分析员、项目经理……
应改为“泛化”
8.假设你从垃圾堆里捡到这样一张小纸片(如下图所示)。
根据既有信息尽量判断:
(1)“小车”类有哪几种操作?
(2)“指挥小车UC”类的“执行任务”操作要做哪些工作?(采用伪代码描述)
陟动任条::,务峥目的地小工
1f侑层足“化仆5提
-------------——U
:
命回小O电检笈()
除出门,•命氏到吆H的址X)
------------------------
心法小工0木刎iSH0t<C
题四彳、1
■T:i>U
盘窗刍婚会W属研及信息计算出向皮
[Obkt:目町地|
图时序图
参照答案:
(I)“小车”类有哪几种懊作?
返回小车目前位置()
转向和前进()
(2)“指挥小车UC”类的“执行任务”操作要做哪些工作?(采用伪代码描述)
移动任务:更新行走断表和HII勺地()
移动任务:判断既有信息足以让小车行走()
小车:放回小车目前位置()
小车:验证小车尚未抵达目的地()
移动:根据但前位置及断表信息计算出速度、角度()
小车:转向和前进()
9.简述统一建模语言UML的长处。
10.简述面向对象技术的三大机制。
11.简述面向对象分析的基本环节。
12.简述OOD模型的J总体构造,并画图表达。
13.应用UML进行系统分析和设计所需建立视图有那几种?
14.简述“开一闭”原则的基本思想。请举出一种使用了软件“开一闭”原
则的软件设计模式,其中何处体现了“开一闭”原则。
答:“开一闭”原则:软件实体应当对扩展开放,而对修改关闭,“开-闭”
原则规定软件系统可以在不需要修改原有类日勺基础上,通过增长类到达扩展功能
的目叽
Abstractfactory体现了这个原则,假如想增长一类新的products,只需
在product类体系中增长各个products,然后在factory类体系构造中增长一
种concretefactory就可以了,而不需要对既有类做任何修改,TheOpen-closed
principle[ocp]在不改动过模块源代码的)状况下寸展模块的行为。
软件实体(类模块函数等)应当是可以扩展的,不过不可以修改日勺。
15.简述依赖例转原则的基本思想。请举出一种使用了软件依赖原则的软件
设计模式,其中何处体现了依赖原则。
答;依赖倒置原则的基本思想是;①高层模块不应当依赖于低层模块,两者
都应当依赖于抽象。②抽象不应当依赖于细节,细节应当不依赖于抽象。Tomplate
method就体现了这个原则,它定义了一种操作中的I算法骨架,而将某些环节延
迟到子类中,templatemethod使得子类不变化一种算法的J构造,即可重定义该
算法的某些特定环节c
16.什么是单一职责原则?请举出一种使用了单一职责原则的1软件设计模
式,其中何处体现了单一职责原则。
答:基本思想:SRP使得一种类或一种模块承担的责任尽量的少,使尽量少
的原因或动机影响该类或该模块,即增大类或模块的内聚性,减少其耦合度,SRP
是所有原则中最简朴的之一,也是最难对的运用的之一。
COMMAND模式体现了SRP原则,大多数类都是一组措施和对应依J一组变量的
结合,而该模式只是封装了一-种没有任何变量的I函数,它对函数的关注超过了类,
将一种祈求封装为一种对象,从而可用不一样的I祈求对客户进行参数化。
17.软件复用可采用类的继承方式和类的聚合方式,比较两者的优缺陷。
答:聚合:一种对象拥有另一种对象或对另一种对象负责(即一种对象包括
另一种对象或是另一种对象日勺一部分)并且聚合对象和其所有具有相似日勺生命周
期(即所谓日勺“同生共死”关系)。
聚合复用长处:①容器类仅能通过被包括对象的接口来对其进行访问。②“黑
盒”复用,由于被包括对象日勺内部细节对外是不可见。③包装性好。④实现上的
互相依赖性比较小。⑤每一种类只专注于一项任务。⑥通过获取指定其他的具有
相似类型的对象的使用,可以在运行期间动态地定义(对象的)组合。
聚合的缺陷:①导致系统中的对象过多②为了能将多种不一样的对象作为
组合块来使用,必须仔细地对接口进行定义。
类继承:是一种通过扩展(一种己经有对象的)实现,从而获得新功能日勺复
用措施。
继承的长处:①轻易进行新欧J实现,由于其大多数可继承而来②易于修改
或扩展那些被复用的实现。
继承的缺陷:①破坏了封装性,由于这会将父类日勺实现细节暴露给子类②
“白盒”复用,由于父类的内部细节对于子类而言一般是可见的③当父类H勺实
现更改时,子类也不得不随之更改④从父类继承来的实现将不能在运行期间进
行变化。
18.画出工厂措施模式的构造图。什么状况下适合使用工厂方发模式?
其中product:为工厂模式所要创立的对象类型定义一种接口。
Concreteproduct:实现product接口。
Creator:申明工厂措施(factorymethod)返回值为product的一种对象。
Concretecreator:覆写factoryMethod(),返回值为concreteproduct
一种详细实例。
在下面状况下你可以考虑使用工厂措施模式:
1)当客户程序不需要懂得要使用对象H勺创立过程。
2)客户程序使用口勺对象存在变动口勺也许,或者主线就不懂得使用哪一种详
细的对象。
19.画出合成模式(Composite)的构造图。举例阐明一种可以应用合成模
式的软件设计实例,阐明其中各角色的作用。
实例:计算机和立体组合音响这样日勺设备常常被组装成一部分整体层次构造
或者是容器层次构造,例如:底盘可以包括驱动装置和平面板,总线具有多种插
件,机柜包括底盘、总线等。这样构造很自然的用composite模式进行模拟。
Equipment类为在部分---整体层次构造中『V所有设备定义一种接口。
Equipment申明某些操作返回一种设备口勺属性,例如它『、J能是消耗利价格。子类
为指定日勺设备实现了这些操作,Equipment还申明了一种CreateIterator操作,
该操作为访问它的零件返回一种Iterator,这个操作时缺省实现返回一上
NullIterator,它在空集上迭代。
CompositeEquipnent是包括其他设备日勺基类,它也是Equipment日勺子类。
20.简述门面模式(Facade)和中介者模式(Mediator)的基本思想,两者
的差异何在?
答:门面模式(facade)又称外观模式。基本思想:为子系统中的一组接口
提供一种一致的界面,Facade模式定义了一种高层接口,这个接口使得这一子
系统愈加轻易使用。
“中介者模式”基本思想:MediatorPattern中文译为“中介者模式”、“调
停者模式”。调停者模式H勺定义是:用一种调停对象来封装一系列日勺对象交互。
调停者使各对象不需要显式地互相引用,从而使其耦合松散,并且可以独立地变
化它们之间的交互。简朴点来说,将本来两个直接引用或者依赖的对象拆开,在
中间加入一种“调停”对象,使得两头的对象分别和“调停”对象引用或者依赖。
两者的差异:从口口勺上看,调停者模式与门面模式有些相似。不过门面模
式是介于客户程序与子系统之间欧I,而调停者模式是介于子系统与子系统之间
的。这也注定了它们有很大日勺区别:门面模式是将原有日勺复杂逻辑提取到一种统
一日勺接口,简化客户对逻辑的使用。它是被客户所感知的,而原有日勺复杂逻辑则
被隐藏了起来。而调停老模式的加入并没有变化客户原有的使用习惯,它是隐藏
在原有逻辐背面日勺,使得代码逻辑愈加清晰可用。
21.简述观测者模式的基本思想,怎样实现当目的对象发生变化时多种观测
者对象的同步更新?画出他们之间的协作图。
(1)Observer(观测者)基本思想:对象间的)一种一对多日勺依赖关系,当
一种对象的状态发生变化时,所有依赖于它日勺对象都得到告知并自动更新。
(2)协作:当ConcreteSubject发生任何也许导到其参观者与其自身状态
不一致日勺变化时,它将告知它的各个观测者。在得到一种详细日勺目日勺变化告知后,
ConcreteObject对象可向目的对象查询信息,ConcreteObject使用这个些信
息以使它的状态与目的对象日勺状态一致。
(3)协作图:
(3物作图:〃
22.举一适合使用State模式的例子。与不使用该模式相比,有哪些长处?
举例:抽象状态类定义了一种抽象措施“写程序”
与不使用该模式相比长处:
State模式将特定日勺状态有关的行为封装在一种类中,由于所有状态有关的代码
都存在于某个concretestate中,因此通过定义新的子类可以很轻易日勺增长新
的状态和转换。
23.有哪些模式的使用可以使得类的复用性增强?阐明你的理由。
方略模式(strategy)属于对象行为型模式,重要定义一系列的)算法,
把这些算法一种个封装成拥有共同接口日勺单独的类,并使他们之间互换,客户端
调用他们的时候互不影响。算法使用和算法分离,即将变化的详细算法封装起来,
减少了代码日勺耦合度,算法提取起来,使算法得到重用。
中介者模式(mediator)用一种调停对象来封装一系列的对象交互,调
停者使各对象不需要显式地互相引用,从而使其耦合松散,并且可以独立地变化
它们之间的交互。即,将本来的两个直接引用或者依赖的对象拆开,在中间加入
一种“调停”对象,使得两头口勺对象分别和“调停”对象引用或者依赖。提高了
原有系统的可读性,将原有系统的多对多转化为一对多,提高了代码的可复用性。
适配器(Adapter)模式是的原本由于接口不兼容而不能再一起的那些
类可以一起工作。如面图程序中,已实现绘制点,直线等功能。为了让客户程序
在使用日勺时候不用关怀不一样定义,定义个抽象类规范接口,当去实现绘图时,
发现系统其他地方已经有制图实现,不过系统已经有的措施与抽象类中规定措施
不一样样,这时候用适配器模式可以处理这问题。适配器模式是为了面向接口编
程中更好的复用。
24.比较Adapter和Proxy模式使用上的异同之处。
适配器模式(Adapter):将一种类的接口转换成客户但愿日勺此外一种接口。
Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
代理模式有两个英文名字:ProxyPattern和SurrogatePattern©代理模
式:为其他对象提供一种代理以控制对这个对象的访问。说白了就是,在某些状
况下客户不想或者不能直接引用一种对象,而代理对象可以在客户和目的对象之
间起到中介作用,去掉客户不能看到的内容和服务或者增添客户需要口勺额外服
务。
两者的重要区别在于代理模式应用日勺状况是不变化接口命名的,并且是对已
经有接口功能的一种控制;而适配器模式则强调接口转换。
25.阐明Observer模式的基本实现方式。假如不用该模式,要到达同样的
效果,你会怎样做?
观测者模式在有关目H勺角色、观测者角色通信日勺详细实现中,有两个版本。
一种状况便是目的角色在发生变化后,仅仅告诉观测者加色“我变化了”;
观测者角色假如想要懂得详细日勺变化细节,则就要自己从目的角色的接口中得
到。这种模式被很形象的称为:拉模式一一就是说变化的信息是观测者角色积极
从目的角色中“拉”出来的。
尚有一种措施,那就是我目的角色“服务一条龙”,告知你发生变化的同步,
通过一种参数将变化的细节传递到观测者角色中去。这就是“推模式”一一管你
要不要,先给你啦。
这两种模式日勺使用,取决于系统设计时时需要。假如目的角色比较复杂,并
且观测者角色进行更新时必须得到某些详细变化H勺信息,则“推模式”比较合适。
假如目日勺角色比较简朴,则“拉模式”就很合适。
假如不使用该模式,可采用方略模式,将不一样的状况作为子类封装在一种
类中,模拟observer模式中目的角色日勺不一样状态,当外部状态发生变化时,可
以选择不一样日勺strategy1>strategy2…变化观测者角色,从而到达与观测者
模式同样的效果-
26.请列举一种使用装饰模式的例子。画出你的例子的类图构造。
JUnit中的)装饰模式:在JUnit中,TestCase是一种很重要的I类,容许对
其进行功能扩展。在junit.extensions包中,TestDecorator>RepeatedTest
便是对TestCase的装饰模式扩展。下面我们将它们和上面日勺角色对号入座。
27.列举两个可以使我们在程序中不必使用if-else构造的软件设计模式。
使用软件设计模式是怎样做到这一点时?
方略模式(strategy)和状态模式(state)
方略模式是将不一样算法(处理措施)封装到stategy类中,状态模式是将
不一样状态封装到state类中。两者都是通过,类中口勺子类,实现不一样状况的
调用,从而有效日勺替代充斥在程序中的ifelse语句。
28.你认为在Linux平台上直接运行WIN32程序有也许吗?如认为不也许请
阐明理由;如认为也许应怎样实现这一目的?
(1)两个OS内部实既有很大差异,甚至连途径日勺分隔符都不一样样,一种
WIN32程序无论怎样到了最终也要调用Windowapi,而这些api在linux上主线
没有实现(2)例如:就顾客界面来说,有些windows口勺控件,在Linux上主线
连对应口勺具有类似功能口勺控件都没有怎么执行?假如再波及进程,线程就更复杂
了,差距也更大,假如想用一种Win32程序在linux上执行,必须有一种间接层
来缓和两者差距,然后规定WIN32程序只能调用这个间接层里面口勺库函数
29.Java是一种跨平台的软件语言。为了实现跨平台,你认为采用哪种软
件模式来实现跨平台部分更合理?阐明你的理由。
答:abstractfactory实现跨平台比较合适。用abstractfactory提供一
种高层接口,来建造每个所需的IProduct,当然详细的实现要用Concretefactory
来实现,然后让每个cs对应一种Concretefactory,这样当其他欧JJava类库
需要平台支持时,只需调用abstractfactoi^y的对应函数即可,而无需关系它
所在是什么平台。
例如:顾客界面awt这个类体系,它是跨平台日勺,它自身不能有绘制图形界
面H勺代码,由于这波及详细日勺平台。因此它肯定要调用一种抽象工厂模式类H勺对
应函数,详细实现就由concretefactory来负责。
Bridge模式可以分离接口及其实现部分,使接口部分和实现部分可以独立
变化,同步可以对客户隐藏实现细节,实现bridge实现跨平台部分就有也许对
不一样的平台编写不一样的详细实现,而同步又保持接口部分java语言可以独
立变化。
30.在一种国际
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026年江苏省苏教版初中音乐第9章音乐欣赏巩固习题
- 2025-2026年天津市苏教版小学五年级英语第7单元课时作业
- 2025-2026年山东省部编版七年级英语第4单元期末测试卷
- 2026年企业客户关系管理课件
- 敬老院公益活动主持人结束语
- 护理技术操作考核总结和评价
- 2026秋统编版新教材九年级上册道德与法治9.1 铸牢中华民族共同体 教案
- Unit 4 Amazing Plants and Animals Section A (Grammar Focus) 同步练习人教版英语八年级上册
- 外贸跟单员考试易错试题及答案
- 危险化学品使用及安全管理知识考核试卷及答案
- 2026年渝中区社区工作者招聘考试备考题库及答案解析
- 耳鼻喉科听力障碍护理规范
- 2026年国电南瑞行政测验笔试题库真题
- 测量标志保护工作方案
- 2026年交通部监理工程师环保培训试卷及答案
- 应激神经免疫调控麻醉应用
- 心脏康复健康科普
- 城市地铁车站深基坑支护施工方案
- 人教A版(2019)高二数学选择性必修第一册基础知识清单填空练习题(含答案)
- 2025-2026学年人教版高一生物上册必修1第1-3章知识清单
- 针刺伤应急处置流程
评论
0/150
提交评论