版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象分析与设计习题一、单项选取题1.到20世纪末,面向对象软件工程已经逐渐发展成熟,特别是(D)形成和广泛使用,采用面向对象分析与编程软件开发办法已成为软件开发主流办法。A.Simula67语言B.Smalltalk语言C.Java语言D.统一建模语言(UML)原则2.面向对象运动产生了各种面向对象语言,其中(C)是一种混合性面向对象语言,既支持面向过程程序设计办法,又支持面向对象程序设计办法,有广泛应用基本和丰富开发环境支持,因而使面向对象程序设计能得到不久普及。A.SmalltalkB.EiffelC.C++D.Java3.下列不属于面向对象技术基本特性是(B)。A.封装性B.模块性C.多态性D.继承性4.面向对象程序设计将描述事物数据与(C)封装在一起,作为一种互相依存、不可分割整体来解决。A.信息B.数据隐藏C.对数据操作D.数据抽象5.关于面向对象办法长处,下列不对的论述是(C)。A.与人类习惯思维办法比较一致B.可重用性好C.以数据操作为中心D.可维护性好6.(D)是从顾客使用系统角度描述系统功能图形表达办法。A.类图B.对象图C.序列图D.用例图7.(C)是表达系统类及其互相联系图示,它是面向对象设计核心,建立状态图、协作图和其她图基本。A.对象图B.组件图C.类图D.配备图8.(D)描述了一组交互对象间动态协作关系,它表达完毕某项行为对象和这些对象之间传递消息时间顺序。A.对象图B.协作图C.状态图D.序列图9.(D)就是用于表达构成分布式系统节点集和节点之间联系图示,它可以表达系统中软件和硬件物理架构。A.组件图B.协作图C.状态图D.配备图10.使用UML进行关系数据库(B)时,需要设计出表达持久数据实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。A.业务UseCase模型设计B.逻辑数据模型设计C.物理数据模型设计C.物理实现设计11.一种设计得好OO系统具备(B)A.低内聚、低耦合特性 B.高内聚、低耦合特性C.高内聚、高耦合特性 D.低内聚、高耦合特性12.下面()不是UML基本构成元素。(A)A.控制语言 B.基本构造块 C.规则 D.公共机制13.面向对象特点重要概括为(C)。A.可分解性、可组合性、可分类性 B.继承性、封装性、多态性C.抽象性、继承性、封装性、多态性D.封装性、易维护性、可扩展性、可重用性14.构成对象两个重要因素是(A)。A.属性和服务 B.标记和内容 C.继承和多态 D.消息和封装15.下列关于面向对象办法中描述中错误是(C)。A.使用设计模式有助于在软件开发中应用面向对象技术B.选取面向对象程序设计语言时需要考虑开发人员对其熟悉限度C.UML作为一种可视化建模语言需要与RUP开发过程同步使用D.当前在软件生命周期分析、设计、实现和测试中均可以应用面向对象办法16.顺序图重要可觉得设计人员提供(A)信息。A.消息发送顺序 B.某个办法执行流程C.类之间关联关系多重性 D.某个对象在不同状态之间转移17.类和接口关系类似于下面哪种类型关系(D)。A.关联(association)和汇集(aggregation)B.关联(association)和组合(composition)C.脚本(scenario)和用例(usecase)D.包(Package)和子系统(subsystem)18.在类图中,那个类图中类Order所生成代码具备PublicclassOrder{PublicCustomerrecipient;}形式?(A)A.B.C.D.19.下面那个图符表达UML中实现关系?(C)A.B.C.D.20.一种银行业务系统采用如图琐事配备图,则错误是(D)A.与GUI关于类应当布置在BranchClient上B.这个图表达一种三层体系构造,不论BranchClient、FinancialAppServer、DatabaseServer是运营在同一台机器上还是在不同机器上C.为了系统可伸缩性(scalability),与业务逻辑关于对象应当布置在FinancialAppServer上D.为了系统可伸缩性,与业务逻辑关于对象应当布置在BranchClient上21.关于用例与类对比中(D)是错误。A都属于模型构造元素B都存在继承关系C类描述系统某些静态视图,用例描述系统动态行为视图D类描述是系统内部构成,用例也可以描述系统内部构成22.Innovation公司正在为Rose开发插入件,使得Rose可以把OOA、OOD模型以各种图形格式导出,如JPEG格式、BMP格式、GIF格式等。在导出时,会依照不同算法来生成相应图形文献,这些算法很复杂。为了描述这些算法,在下面这些图中,那个是最适合?(A)(注:活动图可以用来描述细节)A.活动图 B.状态图 C.类图 D.用例图23.计算机(Computer)由中央解决器、内存、软盘、硬盘、显示屏、键盘、鼠标等构成。那么Computer类和其她类(CPU、RAM、FloppyDrive、HardDisk、Monitor、Keyboard、Mouse)之间关系是:(D)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.在UML中,有3种基本构造块,分别是(A)
A.事物、关系和图B.注释、关系和图
C.事物、关系和构造D.注释、关系和构造27.在UML中,有四种关系,下面哪个不是(B)
A.依赖关系B.继承关系C.泛化关系D.实现关系28.下面哪个不是UML中静态视图()
A.状态图B.用例图C.对象图D.类图29.在用例之间,会有三种不同关系,下列哪个不是它们之间也许关系(D)A.包括(include)B.扩展(extend)
C.泛化(generalization)D.关联(connect)30.用例(Use-case)用来描述系统在事件做出响应时所采用行动。用例之间是具备有关性。在一种“订单输入子系统”中,创立新订单和更新订单都需要检查顾客帐号与否对的。那么,用例“创立新订单”、“更新订单”与用例“检查顾客帐号”之间是(B)关系
A.扩展(extend)B.包括(include)
C.分类(classification)D.汇集(aggregation)31.UML中类有三种,下面哪个不是其中之一(B)
A.实体类B.抽象类C.控制类D.边界类32.阅读图例,判断下列哪个说法是错误。(c)
A.读者可以使用系统还书用例
B.每次执行还书用例都要执行图书查询用例
C.每次执行还书用例都要执行交纳罚金用例
D.执行还书用例有也许既执行图书查询用例,又执行交纳罚金用例33.关于协作图描述,下列哪个不对的(B)
A.协作图作为一种交互图,强调是参加交互对象组织;
B.协作图是顺序图一种特例
C.协作图中有消息流顺序号;
D.在ROSE工具中,协作图可在顺序图基本上按“F5”34.设计模式具备长处(a)。 A.适应需求变化B.程序易于理解 C.减少开发过程中代码开发工作量D.简化软件系统设计35.设计模式普通用来解决什么样问题(a)。 A.同一问题不同表相B不同问题同一表相 C.不同问题不同表相D.以上都不是36.设计模式两大主题是(d)。 A.系统维护与开发B对象组合与类继承 C.系统架构与系统开发D.系统复用与系统扩展37.如下哪些问题通过应用设计模式不可以解决。(c) A)指定对象接口B)针对接口编程 C)拟定软件功能都正的确现D)设计应支持变化38.外观模式作用是(b)。 A.当不能采用生成子类办法进行扩充时,动态地给一种对象添加某些额外功能。 B.为了系统中一组功能调用提供一种一致接口,这个接口使得这一子系统更加容易使用。 C.保证一种类仅有一种实例,并提供一种访问她全局访问点。 D.在办法中定义算法框架,而将算法中某些操作环节延迟到子类中实现。39.Façade(外观)模式意图是(a)。 A.但愿简化既有系统用法。你需要定义自己借口。 B.将一种无法控制既有对象与一种特定借口相匹配。 C.将一组实现某些从另一组使用它们对象中分离出来。 D.你需要为特定客户(或状况)提供特定系列对象。40.Adapter(适配器)模式意图是(B)。 A.但愿简化既有系统用法。你需要定义自己借口。 B.将一种无法控制既有对象与一种特定借口相匹配。 C.将一组实现某些从另一组使用它们对象中分离出来。 D.你需要为特定客户(或状况)提供特定系列对象。41.下面不属于创立型模式有(C)。 A.抽象工厂模式(AbstractFactory) B.工厂办法模式(FactoryMethod) C.适配器模式(Adapter) D.单例模式(Singleton)42.将一种类接口转换成客户但愿另一种接口。这句话是对下列哪种模式描述(C)。 A.方略模式(Strategies) B.桥接模式(Bridge) C.适配器模式(Adapter) D.单例模式(Singleton)43.如下关于构造型模式说法不对的是。(B) A)构造型模式可以在不破坏类封装性基本上,实现新功能。 B)构造型模式重要用于创立一组对象。 C)构造型模式可以创立一组类统一访问接口。 D)构造型模式可以在不破坏类封装性基本上,使得类可以同不曾预计到系统进行交互。44.关于继承表述错误是:(D)。 A.继承是一种通过扩展一种已有对象实现,从而获得新功能复用办法。 B.泛化类(超类)可以显式地捕获那些公共属性和办法。特殊类(子类)则通过附加属性和办法来进行实现扩展。 C.在一定意义上说破坏了封装性,由于这会将父类实现细节暴露给子类。 D.继承本质上是“白盒复用”,对父类修改,不会影响到子类。45.在不破坏类封装性基本上,使得类可以同不曾预计到系统进行交互。重要体当前(D)。 A外观模式(Facade)B装饰模式(Decorator) C方略模式(Strategies)D桥接模式(Bridge)46.行为类模式使用(B)在类间分派行为。 A接口B继承机制C对象组合D委托47.下面类图表达是哪个设计模式?(D)。 A抽象工厂模式(AbstractFactory)B观测者模式(Observer) C方略模式(Strategies)D桥接模式(Bridge) 48.Bridge(桥接)模式意图是(C)。 A.但愿简化既有系统用法。你需要定义自己借口。 B.将一种无法控制既有对象与一种特定借口相匹配。 C.将一组实现某些从另一组使用它们对象中分离出来。 D.你需要为特定客户(或状况)提供特定系列对象。49.静态工厂核心角色是(A)。 A.抽象产品 B.详细产品 C.静态工厂 D.消费者50.如下属于创立型模式是(A)。 A抽象工厂模式(AbstractFactory)B装饰模式(Decorator) C外观模式(Facade)D桥接模式(Bridge)51.下面类图表达是哪个设计模式?(A)。 A抽象工厂模式B观测者模式 C方略模式D桥接模式 52.AbstractFactory(抽象工厂)模式意图是(D)。 A.但愿简化既有系统用法。你需要定义自己借口。 B.将一种无法控制既有对象与一种特定借口相匹配。 C.将一组实现某些从另一组使用它们对象中分离出来。 D.提供一种创立一系列有关或互相依赖对象接口,而无需指定它们详细类53.在依照不同机器选取设备驱动程序案例中,如下论述不精确是(D)。 A.可以使用switch语句选取驱动程序. B.可以使用继承来实现选取驱动程序,但它也许会产生类组合爆炸问题.. C.可以选取抽象工厂模式实现,且能避免组合爆炸问题. D.使用继承解决方案要比switch语句有更多优势.54.应用设计模式一种长处是(A)。 A.适应需求变化B.程序易于理解 C.减少开发过程中代码开发工作量D.简化软件系统设计55.当咱们想创立一种详细对象而又不但愿指定详细类时,可以使用(A)模式。 A.创立型B.构造型C行为型D.以上都可以56.在观测者模式中,表述错误是(C)。 A.观测者角色更新是被动。 B.被观测者可以告知观测者进行更新 C.观测者可以变化被观测者状态,再由被观测者告知所有观测者根据被观测者状态进行。 D.以上表述所有错误。57.下面类图表达是哪个设计模式?(D)。 A方略模式(Strategies)B装饰模式(Decorator) C桥接模式(Bridge)D观测者模式(Observer) 58.当咱们想创立一种详细对象而又不但愿指定详细类时,可以使用(A)模式。 A.创立型B.构造型 C行为型D.以上都可以59.下列模式中,属于行为模式是(B)。 A.工厂模式B观测者 C适配器D以上都是60.Observer模式不合用于(D)。 A当一种抽象模型存在两个方面,其中一种方面依赖于另一方面,将这两者封装在独立对象中以使它们可以各自独立变化和复用。 B当对一种对象变化需要同步变化其她对象,而不懂得详细有多少个对象有待变化时。 C当一种对象必要告知其他对象,而它又不能假定其他对象是谁,也就是说你不但愿这些对象是紧耦合。 D一种对象构造包括诸多类对象,它们有不同接口,而想对这些对象实行某些依赖于其详细类操作。二、判断题1.一种状态图最多只能由一种初态和一种终态。(F)2.协作图中消息必要要有消息顺序号。(T)3.两个参加者(actor)之间可以有包括(include)关系、扩展(extend)关系或泛化(generalization)关系,而包括关系和扩展关系是依赖(dependency)关系版型。(F)4.参加者(actor)和用例(usecase)之间关系是关联(association)关系。(T)5.类A和类B之间关系如图1所示,则称类B中getName()办法是对类A中getName()办法重载(overload)。(F)图1getName()办法之间关系图2活动图6.如图2所示,活动Gesture和Streamaudio可以并发进行。(T)7.一种软件系统,如果只有源代码,缺少其她相应辅助文档,如缺少顺序图和类图,则可以运用Rose进行逆向工程得到顺序图和类图,但得到顺序图和类图会比较简朴。(F)8.CMM描述了五个级别软件过程成熟度,即初始级、可重复级、已定义、已管理级、优化级。(T)9.UML由用例视图、物理视图、组件视图、进度视图和配备视图构成。(F)10.在设计类图时,可以不用对类图中每个关联进行命名,但如果需要命名话,最佳用一种“动词”给关联命名。(T)11.适配器模式属于创立型模式。(F)12.在设计模式中,“效果”只是指“因素和成果”。(T)13.设计模式使代码编制不能真正工程化。(F)14.设计模式两大主题是系统复用与系统扩展。(T)15.Façade(外观)模式不但可觉得办法调用创立更简朴接口,还可以减少客户必要解决对象数量。(T)16.外观模式,当不能采用生成子类办法进行扩充时,动态地给一种对象添加某些额外功能。(F)17.Façade模式为子系统中一组接口提供界面也许不一致。(F)18.Façade外观模式只能为办法调用创立更简朴接口,不能减少客户必要解决对象数量。(F)19.对象适配器模式是合成聚合复用原则典型应用。(T)20.Adapter模式使原本由于接口不兼容而不能一起工作那些类可以一起工作。(T)21.Façade模式和Adapter模式是相似类型包装器。(F)22.Adapter模式不是必要针对某个接口进行设计。(F)23.继承本质上是“白盒复用”,对父类修改,不会影响到子类。(F)24.继承是一种通过扩展一种已有对象实现,从而获得新功能复用办法。(t)25.抽象工厂模式提供了一系列有关或互相依赖对象接口且必要指定她们详细类。(F)26.AbstractFactory(抽象工厂)模式保证系统总能依照当前状况获得适当对象。(T)27.在AbstractFactory(抽象工厂)模式中,客户对象不需要懂得“向谁祈求需要对象”“如何使用这些对象”。(F)28.Decorator(装饰)模式意图是为一种对象连接附加职责。(F)29.每个Decorator对象在被装饰功能之前或之后执行自己附加功能。(T)30.Decorator(装饰)模式合用性是表达对象某些-整体层次构造。(F)三、填空题1.面向对象开发办法一改过去老式以___功能分析___为基本__面向过程__构造化分析与设计办法,它模仿人们理解和解决客观世界方式来分析问题,把系统视为一系列__对象_集合,其__面向对象设计__又将分析成果映射到某种面向对象实现工具构造上,使映射过程有着比较直接相应关系,使分析者、设计者和编程者都可使用相似_概念_,从而使面向对象软件开发能比较自然地模仿客观世界活动,使问题描述空间与_解空间__在构造上尽量一致。因而,采用面向对象办法可以更有效地开发大型软件系统。面向对象办法_封装_、_继承_、__多态_等机制不但支持软件复用,并且使软件维护工作可靠有效,可实现软件系统柔性制造,更好地克服_软件危机__。因而,它已成为成熟广为采用软件开发办法。2.对象是客观实体抽象表达,是由__描述对象属性数据__和_对这些数据进行操作行为__两某些构成。而_类_是对具备相似属性和行为一组对象抽象描述。因而,它可作为一种顾客自定义类型和创立对象样板,而按照这种样板所创立一种个详细对象就是类__实例__。通过_继承__关系又可形成一种类层次构造。3.UML中用于描述系统静态建模视图称为静态视图,涉及_用例图__、_类图__、_对象图__、__包图__和__构件图_。4.UML从不同视角为系统架构建模,可产生九种视图:________________、_________________、_________________、________________、________________、_________________、________________、_________________、_________________。5.________________是用来反映若干个对象之间动态协作关系一种交互图。它重要反映对象之间已发送消息先后顺序和对象之间交互过程。________________是用来描述实现某些服务所涉及对象及其互相之间关系(涉及消息通信)动态视图。建模者可以选取______________________________来反映对象之间协作关系;如果需要强调时间和序列,最佳选取________________;如果需要强调上下文有关,最佳选取________________。6.适配器模式,分为类适配器和对象适配器两种实现。其中类适配器采用是继承关系,而对象适配器采用是(组合聚合)关系。7.Adapter模式有两种类型有:对象Adapter模式、(类Adapter模式)。8.UML是一种用来创立(程序模型)图像语言。9.(Adapter适配器)模式使原本接口不兼容而不能一起工作类可以一起工作。10.适配器模式,分为类适配器和对象适配器两种实现。其中类适配器采用是(继承)关系,而对象适配器采用是组合聚类关系。11.在存在继承关系状况下,办法向(超类方向)集中,而数据向(子类)方向集中。12.在进行设计以应对变化过程中,应当遵循两条基本方略:找出变化并(封装变化点);优先使用对象组合,而不是类继承。13.封装性好代码更容易测试,由于它与其她代码没有(耦合)。14.(抽象工厂)模式提供了一系列有关或互相依赖对象接口而无需指定她们详细类。15.工厂模式分为简朴工厂,工厂办法,(工厂办法)三种类型。四.简答题1.简述面向对象软件开发办法长处。2.简述面向对象技术三大机制。答:(1)封装性(encapsulation)所谓封装就是把对象属性和行为结合成一种独立单位,使外界不能直接访问或修改这些数据和代码,外界只能通过对象提供接口函数来变化或获取对象属性数据,这就实现了消息隐蔽。(2)继承性如果在一种已定义类上,增长某些特殊属性或操作,可以形成一种新类,这个类不但继承了前一种类所有特性,并且具备新特性,因而可看作前一种类特例,是对前一种类继承。前一种类称为父类,新产生类叫做子类。通过继承关系可形成一种类层次构造,叫做继承构造。(3)多态性在类层次构造不同类中,可用相似函数名实现功能不同函数。3.简述OOA模型层次构造。答:OOA模型采用五层次构造,它们分别是:(1)对象-类层划分待开发系统及其环境信息基本构造单位,标出反映问题域对象和类,并用符号进行规范描述,用信息提供者熟悉术语为对象和类命名。(2)属性层定义对象和某些构造中数据单元,继承构造中所有类公共属性可放于通用类中。标记对象类必须属性并放在适当继承层次上,属性特殊限制和实例连接关系也应标记出来。(3)服务层表达对象服务或行为,即是要定义类上操作。(4)构造层标记现实世界中对象之间关系。当一种对象是另一种对象一某些时,用"整体-某些"关系表达;当一种类属于另一种类时,用类之间继承关系表达。(5)主题层可将有关类或对象划分为一种主题。4.简述OOD模型总体构造,并画图表达。OOD体系构造各个某些内容:(1)问题论域某些,在OOA模型基本上,细化分析成果,设计一组构成底层应用模型类和对象。(2)人机交互某些:设计顾客界面模型,该顾客界面模型中类和对象提供实现人机交互操作接口函数。顾客界面设计涉及菜单设计、窗口设计、输入/输出界面设计等等。(3)任务管理某些:建立某些类,用以负责解决操作系统级并发问题、中断、调度以及其他与特定平台关于问题。(4)数据管理某些:提供数据管理系统中存储和检索对象基本构造,涉及对永久性数据访问和管理。数据管理设计涉及:—数据存储设计:数据存储设计选取数据存储方式(文献存储、关系数据库表格存储或面向对象数据库存储)。—设计相应操作。为每个需要存储对象和类增长用于存储管理属性和操作,在类和对象定义中加以描述。5.分析下面类图,画出新类图,将原图中多对多关系转换为1:M(一对多)关系。答案:6.信用卡也许处在“开放”和“关闭”状态,其中“开放”状态可以直接进入“关闭”状态,而从“关闭”状态必要提供密码验证才干进入“开放”状态。“开放”状态又涉及“透支”和“正常”状态之间变化,当剩余金额少于零、或者使用额度不不大于剩余金额、或者结算余额不大于零时进入透支状态,反之则为正常状态。画出信用卡状态图。(6分)7.请判断如下类图中类关系与否适当,并阐明理由。(1)飞机有机翼、机身、驾驶舱(2)商场里电器。1台电器可以是1台洗衣机,也可以不是;1台电器可以是1台电视机,也可以不是;1台电器可以是1台空调,也可以不是;(3)公司员工诸多,涉及程序员、分析员、项目经理……(1)飞机有机翼、机身、驾驶舱应改为“组合”(2)商场里电器。1台电器可以是1台洗衣机,也可以不是;1台电器可以是1台电视机,也可以不是;1台电器可以是1台空调,也可以不是;应当为“泛化”(3)公司员工诸多,涉及程序员、分析员、项目经理……应改为“泛化”8.假设你从垃圾堆里捡到这样一张小纸片(如下图所示)。依照既有信息尽量判断:(1)“小车”类有哪几种操作?(2)“指挥小车UC”类“执行任务”操作要做哪些工作?(采用伪代码描述)图时序图参照答案:(1)“小车”类有哪几种操作?返回小车当前位置()转向和迈进()(2)“指挥小车UC”类“执行任务”操作要做哪些工作?(采用伪代码描述)移动任务:更新行走断表和目地()移动任务:判断既有信息足以让小车行走()小车:放回小车当前位置()小车:验证小车尚未到达目地()移动:依照但前位置及断表信息计算出速度、角度()小车:转向和迈进()9.简述统一建模语言UML长处。10.简述面向对象技术三大机制。11.简述面向对象分析基本环节。12.简述OOD模型总体构造,并画图表达。13.应用UML进行系统分析和设计所需建立视图有那几种?14.简述“开—闭”原则基本思想。请举出一种使用了软件“开—闭”原则软件设计模式,其中何处体现了“开—闭”原则。答:“开—闭”原则:软件实体应当对扩展开放,而对修改关闭,“开-闭”原则规定软件系统可以在不需要修改原有类基本上,通过增长类达到扩展功能目。Abstractfactory体现了这个原则,如果想增长一类新products,只需在product类体系中增长各个products,然后在factory类体系构造中增长一种concretefactory就可以了,而不需要对既有类做任何修改,TheOpen-closedprinciple[ocp]在不改动过模块源代码状况下扩展模块行为。软件实体(类模块函数等)应当是可以扩展,但是不可以修改。15.简述依赖例转原则基本思想。请举出一种使用了软件依赖原则软件设计模式,其中何处体现了依赖原则。答:依赖倒置原则基本思想是:①高层模块不应当依赖于低层模块,两者都应当依赖于抽象。②抽象不应当依赖于细节,细节应当不依赖于抽象。Tomplatemethod就体现了这个原则,它定义了一种操作中算法骨架,而将某些环节延迟到子类中,templatemethod使得子类不变化一种算法构造,即可重定义该算法某些特定环节。16.什么是单一职责原则?请举出一种使用了单一职责原则软件设计模式,其中何处体现了单一职责原则。答:基本思想:SRP使得一种类或一种模块承担责任尽量少,使尽量少因素或动机影响该类或该模块,即增大类或模块内聚性,减少其耦合度,SRP是所有原则中最简朴之一,也是最难对的运用之一。COMMAND模式体现了SRP原则,大多数类都是一组办法和相应一组变量结合,而该模式只是封装了一种没有任何变量函数,它对函数关注超过了类,将一种祈求封装为一种对象,从而可用不同祈求对客户进行参数化。17.软件复用可采用类继承方式和类聚合方式,比较两者优缺陷。答:聚合:一种对象拥有另一种对象或对另一种对象负责(即一种对象包括另一种对象或是另一种对象一某些)并且聚合对象和其所有具备相似生命周期(即所谓“同生共死”关系)。聚合复用长处:①容器类仅能通过被包括对象接口来对其进行访问。②“黑盒”复用,由于被包括对象内部细节对外是不可见。③包装性好。④实现上互相依赖性比较小。⑤每一种类只专注于一项任务。⑥通过获取指定其她具备相似类型对象使用,可以在运营期间动态地定义(对象)组合。聚合缺陷:①导致系统中对象过多②为了能将各种不同对象作为组合块来使用,必要仔细地对接口进行定义。类继承:是一种通过扩展(一种已有对象)实现,从而获得新功能复用办法。继承长处:①容易进行新实现,由于其大多数可继承而来②易于修改或扩展那些被复用实现。继承缺陷:①破坏了封装性,由于这会将父类实现细节暴露给子类②“白盒”复用,由于父类内部细节对于子类而言普通是可见③当父类实现更改时,子类也不得不随之更改④从父类继承来实现将不能在运营期间进行变化。18.画出工厂办法模式构造图。什么状况下适合使用工厂方发模式?其中product:为工厂模式所要创立对象类型定义一种接口。Concreteproduct:实现product接口。Creator:声明工厂办法(factorymethod)返回值为product一种对象。Concretecreator:覆写factoryMethod(),返回值为concreteproduct一种详细实例。在下面状况下你可以考虑使用工厂办法模式:1)当客户程序不需要懂得要使用对象创立过程。2)客户程序使用对象存在变动也许,或者主线就不懂得使用哪一种详细对象。19.画出合成模式(Composite)构造图。举例阐明一种可以应用合成模式软件设计实例,阐明其中各角色作用。实例:计算机和立体组合音响这样设备经常被组装成一某些整体层次构造或者是容器层次构造,例如:底盘可以包括驱动装置和平面板,总线具有各种插件,机柜涉及底盘、总线等。这样构造很自然用composite模式进行模仿。Equipment类为在某些——整体层次构造中所有设备定义一种接口。Equipment声明某些操作返回一种设备属性,例如它能是消耗和价格。子类为指定设备实现了这些操作,Equipment还声明了一种CreateIterator操作,该操作为访问它零件返回一种Iterator,这个操作缺省实现返回一上NullIterator,它在空集上迭代。CompositeEquipment是包括其他设备基类,它也是Equipment子类。20.简述门面模式(Facade)和中介者模式(Mediator)基本思想,两者差别何在?答:门面模式(facade)又称外观模式。基本思想:为子系统中一组接口提供一种一致界面,Facade模式定义了一种高层接口,这个接口使得这一子系统更加容易使用。“中介者模式”基本思想:MediatorPattern中文译为“中介者模式”、“调停者模式”。调停者模式定义是:用一种调停对象来封装一系列对象交互。调停者使各对象不需要显式地互相引用,从而使其耦合松散,并且可以独立地变化它们之间交互。简朴点来说,将本来两个直接引用或者依赖对象拆开,在中间加入一种“调停”对象,使得两头对象分别和“调停”对象引用或者依赖。两者差别:从目上看,调停者模式与门面模式有些相似。但是门面模式是介于客户程序与子系统之间,而调停者模式是介于子系统与子系统之间。这也注定了它们有很大区别:门面模式是将原有复杂逻辑提取到一种统一接口,简化客户对逻辑使用。它是被客户所感知,而原有复杂逻辑则被隐藏了起来。而调停者模式加入并没有变化客户原有使用习惯,它是隐藏在原有逻辑背面,使得代码逻辑更加清晰可用。21.简述观测者模式基本思想,如何实现当目的对象发生变化时各种观测者对象同步更新?画出她们之间协作图。(1)Observer(观测者)基本思想:对象间一种一对多依赖关系。当一种对象状态发生变化时,所有依赖于它对象都得到告知并自动更新。(2)协作:当ConcreteSubject发生任何也许导到其参观者与其自身状态不一致变化时,它将告知它各个观测者。在得到一种详细目的变化告知后,ConcreteObject对象可向目的对象查询信息,ConcreteObject使用这个些信息以使它状态与目的对象状态一致。(3)协作图:22.举一适合使用State模式例子。与不使用该模式相比,有哪些长处?举例:抽象状态类定义了一种抽象办法“写程序”与不使用该模式相比长处:State模式将特定状态有关行为封装在一种类中,由于所有状态有关代码都存在于某个concretestate中,因此通过定义新子类可以很容易增长新状态和转换。23.有哪些模式使用可以使得类复用性增强?阐明你理由。方略模式(strategy)属于对象行为型模式,重要定义一系列算法,把这些算法一种个封装成拥有共同接口单独类,并使她们之间互换,客户端调用她们时候互不影响。算法使用和算法分离,即将变化详细算法封装起来,减少了代码耦合度,算法提取起来,使算法得到重用。中介者模式(mediator)用一种调停对象来封装一系列对象交互。调停者使各对象不需要显式地互相引用,从而使其耦合松散,并且可以独立地变化它们之间交互。即,将本来两个直接引用或者依赖对象拆开,在中间加入一种“调停”对象,使得两头对象分别和“调停”对象引用或者依赖。提高了原有系统可读性,将原有系统多对多转化为一对多,提高了代码可复用性。适配器(Adapter)模式是原本由于接口不兼容而不能再一起那些类可以一起工作。如画图程序中,已实现绘制点,直线等功能。为了让客户程序在使用时候不用关怀不同定义,定义个抽象类规范接口,当去实现绘图时,发现系统其他地方已有制图实现,但是系统已有办法与抽象类中规定办法不同样,这时候用适配器模式可以解决这问题。适配器模式是为了面向接口编程中更好复用。24.比较Adapter和Proxy模式使用上异同之处。适配器模式(Adapter):将一种类接口转换成客户但愿此外一种接口。Adapter模式使得原本由于接口不兼容而不能一起工作那些类可以一起工作。代理模式有两个英文名字:ProxyPattern和SurrogatePattern。代理模式:为其她对象提供一种代理以控制对这个对象访问。说白了就是,在某些状况下客户不想或者不能直接引用一种对象,而代理对象可以在客户和目的对象之间起到中介作用,去掉客户不能看到内容和服务或者增添客户需要额外服务。两者重要区别在于代理模式应用状况是不变化接口命名,并且是对已有接口功能一种控制;而适配器模式则强调接口转换。25.阐明Observer模式基本实现方式。如果不用该模式,要达到同样效果,你会如何做?观测者模式在关于目的角色、观测者角色通信详细实现中,有两个版本。一种状况便是目的角色在发生变化后,仅仅告诉观测者角色“我变化了”;观测者角色如果想要懂得详细变化细节,则就要自己从目的角色接口中得到。这种模式被很形象称为:拉模式——就是说变化信息是观测者角色积极从目的角色中“拉”出来。尚有一种办法,那就是我目的角色“服务一条龙”,告知你发生变化同步,通过一种参数将变化细节传递到观测者角色中去。这就是“推模式”——管你要不要,先给你啦。这两种模式使用,取决于系统设计时需要。如果目的角色比较复杂,并且观测者角色进行更新时必要得到某些详细变化信息,则“推模式”比较适当。如果目的角色比较简朴,则“拉
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电力运维临时工劳动合同样本
- 水源地暖系统安装协议
- 城市广场安保人员招聘协议
- 数据中心资料员合同样本
- 桥梁建设泵机租赁合同
- 餐饮店外墙涂料施工合同
- 软件技术研发合作合同
- 冷链物流解决方案施工合同
- 酒吧主题派对策划合同
- 银行贷款延期协议
- 部编版历史九年级上册第六单元 第17课君主立宪制的英国【课件】y
- 2024年《建筑设备安装》复习考试题库及答案(含各题型)
- 2023年EHS工作年度总结及2024年工作展望(新版)
- 食品风味研究专题智慧树知到期末考试答案章节答案2024年中国农业大学
- 16J914-1 公用建筑卫生间
- 铁路隧道安全风险评估
- 国有企业劳动用工管理办法模版
- ISO14001-2015内审检查表(完整记录)
- yy娱乐频道设计方案模板(简约版)
- 胃舒平药片中Al2O3及MgO含量的测定
- 弥漫大b细胞淋巴瘤(初治)临床路径
评论
0/150
提交评论