1、您现在的位置:希赛网 云阅读 软件设计师考试试题分类精解(第3版)例题1第 5 章:面向对象方法学作者:希赛教育软考学院 来源:希赛网 2014年02月08日例题1上一节本书简介下一节第 5 章:面向对象方法学作者:希赛教育软考学院 来源:希赛网 2014年02月08日例题25.2 试题精解例题1(2005年11月试题30)下列关于静态多态实现重载的描述中正确的是_.A.重载的方法(函数)的方法名(函数名)可以不同B.重载的方法(函数)必须在返回值类型以及参数类型上有所不同C.重载的方法(函数)必须在参数顺序或参数类型上有所不同D.重载的方法(函数)只需在返回值类型上有所不同试题分析overl
2、oad翻译过来就是:超载,过载,重载,超出标准负荷。先来说说重载的含义,在日常生活中我们经常要清洗一些东西,比如洗车、洗衣服。尽管我们说话的时候并没有明确地说用洗车的方式来洗车,或者用洗衣服的方式来洗一件衣服,但是谁也不会用洗衣服的方式来洗一辆车,否则等洗完时车早就散架了。我们并不要那么明确地指出来就心知肚明,这就有重载的意思了。在同一可访问区内被声名的几个具有不同参数列的(参数的类型、个数、顺序不同)同名函数,程序会根据不同的参数列来确定具体调用哪个函数,这种机制叫做重载,重载不关心函数的返回值类型。这里,重载的重的意思不同于轻重的重,它是重复、重叠的意思。例如,在同一可访问区内有:doub
3、le calculate(double);double calculate(double,double);doublecalculate(double,int);doublecalculate(int,double);doublecalculate(int);floatcalculate(float);float calculate(double);6个同名函数calculate,中任两个均构成重载,和也能构成重载,而和却不能构成重载,因为和的参数相同。试题答案C版权方授权希赛网发布,侵权必究上一节本书简介下一节第 5 章:面向对象方法学作者:希赛教育软考学院 来源:希赛网 2014年02月0
4、8日例题3例题2(2005年11月试题31)程序设计语言提供了基本类型及其相关的操作,而_则允许开发者自定义一种新的类型及其相关的操作。A.对象 B.实例 C.类 D.引用试题分析类是对某个对象的定义。它包含有关对象动作方式的信息,包括它的名称、方法、属性和事件。实际上它本身并不是对象,因为它不存在于内存中。当引用类的代码运行时,类的一个新的实例,即对象,就在内存中创建了。虽然只有一个类,但能通过这个类在内存中创建多个相同类型的对象。可以把类看作理论上的对象,也就是说,它为对象提供蓝图,但在内存中并不存在。从这个蓝图可以创建任何数量的对象。从类创建的所有对象都有相同的成员:属性、方法和事件。但
5、是,每个对象都像一个独立的实体一样动作。例如,一个对象的属性可以设置成与同类型的其他对象不同的值。用户在设计系统的过程中,可以根据需要开发自定义的类,将属性、操作方法集中到一个类中。在C+语言中,要在一源文件中引用一个类,只要将定义这个类的头文件包含到该文件中即可。在这里,引用可理解为使用。试题答案C版权方授权希赛网发布,侵权必究例题3(2005年11月试题32)表示了对象间is-a的关系。A.组合 B.引用 C.聚合 D.继承试题分析继承关系表示了对象间is-a的关系,即子类是父类的一种,比如,圆是几何图形的一种,圆是子类,几何图形是基类。类以另一个类对象作为数据成员,称为组合。比如,车轮类
6、、方向盘类、车架类等组合成汽车类。在UML中,在描述类之间的关联时,用到组合(Composition)、聚合(Aggregation)的概念,它们都用于描述类的整体-部分关系。聚合只是概念性的,只是区分整体和部分;而组合则具有很强的归属性,而且整体和部分的对象生命周期是一致的,如果部分类没有了则整体类也消失了,如果整体类销毁了部分类也跟着销毁,而且在任何时候,部分类只能是它所在的整体类的组成部分上一节本书简介下一节第 5 章:面向对象方法学作者:希赛教育软考学院 来源:希赛网 2014年02月08日例题4上一节本书简介下一节第 5 章:面向对象方法学作者:希赛教育软考学院 来源:希赛网 201
7、4年02月08日例题5不能同时又是其他整体类的组成部分。比如,一个团队由很多队员组成,一个人可以是多个团队的队员,队员和团队符合聚合的概念,但不符合组合的概念。又比如,一双鞋由鞋底和鞋面组成,当鞋毁了鞋底和鞋面自然也就不存在了,当鞋底或鞋面没了鞋自然也就不能穿了,不能成为鞋了,这符合聚合、组合的概念。可以认为组合是一种要求更严格的聚合形式。更通俗地说,在组合关联中,部分类不可以独立于整体类而存在;在聚合关联中,部分类可以独立于整体类而存在。试题答案D版权方授权希赛网发布,侵权必究例题4(2005年11月试题48)若对象A可以给对象B发送消息,那么_.A.对象B可以看见对象A B.对象A可以看见
8、对象BC.对象A、B相互不可见 D.对象A、B相互可见试题分析对象A可以给对象B发送消息,那么表明对象A可以调用对象B的方法,对象A可以看见对象B.试题答案B版权方授权希赛网发布,侵权必究例题5(2005年11月试题49)类描述了一组对象共同的特性,下列叙述中正确的是_.A.类本身不能具有变量B.对象具有类定义的所有变量的一份拷贝C.对象间不能共享类定义的变量D.可通过类名访问静态变量(类变量)试题分析此题考查的是面向对象的基础概念-静态变量。首先看选项A:类本身不能具有变量,此句显然上一节本书简介下一节第 5 章:面向对象方法学作者:希赛教育软考学院 来源:希赛网 2014年02月08日例题
9、6上一节本书简介下一节第 5 章:面向对象方法学作者:希赛教育软考学院 来源:希赛网 2014年02月08日例题8错误,因为类是可以有自己的变量的,类自己的变量我们称之为静态变量;接着看选项B:对象具有类定义的所有变量的一份拷贝,此句看似正确,其实是错的,对于普通变量,若有类A,A中定义了属性stuName,则在类A的实例ObjA1中也必然有属性stuName,但有一特例,即静态变量,静态变量是类的变量,它不会被拷贝到所有对象,所有对象都只有它的一个引用而已;接着看C选项:对象间不能共享类定义的变量,这句是错的,类可以定义静态变量,静态变量是属于类的变量,而不是对象的变量,也就是说,若有类A,
10、A中定义了mystatic属性,则A生成的所有对象中mystatic属性是指向同一内存地址的,即同一变量。这也就达到了对象间共享类定义的变量的效果;最后看D选项:可通过类名访问静态变量(类变量),此句正确,以选项C的举例来说,访问属性mystatic,可直接用A.mystatic.试题答案D版权方授权希赛网发布,侵权必究例题6(2005年11月试题50,51)(50)反映了类间的一种层次关系,而(51)反映了一种整体与部分的关系。(50)A.继承B.组合C.封装D.多态(51)A.继承B.组合C.封装D.多态试题分析此题考的是面向对象基本概念,继承反映了类间的一种层次关系,而组合反映了一种整体
11、与部分的关系。试题答案(50)A (51)B版权方授权希赛网发布,侵权必究例题8(2006年5月试题3436)已知3个类O、P和Q,类O中定义了一个私有方法Fl、一个公有方法F2和一个受保护的方法F3;类P和类Q是类O的派生类,其继承方式如下所示。class P:protected O;class Q:public O;关于方法Fl的描述中正确的是(34);关于方法F2的描述中正确的是(35);关于方法F3的描述中正确的是(36).(34)A.方法Fl无法被访问B.只有在类O内才能访问方法FlC.只有在类P内才能访问方法FlD.只有在类Q内才能访问方法Fl(35)A.类O、P和Q的对象都可以访
12、问方法F2B.类P和Q的对象都可以访问方法F2C.类0和Q的对象都可以访问方法F2D.只有在类P内才能访问方法F2(36)A.类O、P和Q的对象都可以访问方法F3B.类O、P和Q的对象都不可以访问方法F3C.类O和Q的对象都可以访问方法F3D.类P和Q的对象都可以访问方法F3试题分析本题考查的是面向对象程序设计中的继承机制。解题的关键在于理解类继承访问控制的规则。下面是对规则的总结(见表5-2)。表5-2 继承访问控制总结表从表5-2中可以看出,当派生类以public方式继承基类时,派生类能继承到基类的public成员和protected成员。当派生类以protected方式继承基类时,派生类
13、同样能继承到基类的public成员和protected成员,但是基类中的public成员在派生类中将变为protected成员。当派生类以private方式继承基类时,派生类同样能继承到基类的public成员和protected成员,但是基类中的public成员在派生类中将变为private成员。有了这个规则,解题也就容易了,我们可以将题目要求转成表5-3和表5-4.表5-3 类P继承类O分析表上一节本书简介下一节第 5 章:面向对象方法学作者:希赛教育软考学院 来源:希赛网 2014年02月08日例题7上一节本书简介下一节第 5 章:面向对象方法学作者:希赛教育软考学院 来源:希赛网 201
14、4年02月08日例题9表5-4类Q继承类O分析表接下来我们可以根据表格来解题。第(34)空是关于函数F1()的描述,从表中可以看出,只有类O拥有私有成员F1(),所以只有类O可以访问F1(),所以第(34)空的答案为B.第(35)空是关于函数F2()的描述,这里有一个细节需要注意,即第(34)空备选答案的描述是类*是否能访问F1(),而第(35)空出现了对象*是否能访问F2()。这其中是有区别的,某个类的对象,只能访问此类的public成员。F2()在类O和类Q中是public成员,所以类0和Q的对象都可以访问方法F2(),答案为C.第(36)空与第(35)空类似,由于F3()在类O、类P和类
15、Q中都是protected成员,所以不能被它们的对象访问,答案为B.试题答案:(34)B (35)C (36)B版权方授权希赛网发布,侵权必究例题7(2005年11月试题52)下列叙述中正确的是_.A.面向对象程序设计语言都不支持过程化的程序设计B.面向对象系统只可采用面向对象程序设计语言实现C.某些过程化程序设计语言也可实现面向对象系统D.面向对象程序设计语言不支持对成员变量的直接访问试题分析某些面向对象的程序设计语言支持过程化的程序设计,过程化的程序设计语言也可实现面向对象系统。试题答案C版权方授权希赛网发布,侵权必究上一节本书简介下一节第 5 章:面向对象方法学作者:希赛教育软考学院 来
16、源:希赛网 2014年02月08日例题10上一节本书简介下一节例题9(2006年5月试题37)在面向对象软件开发过程中,采用设计模式_.A.允许在非面向对象程序设计语言中使用面向对象的概念B.以复用成功的设计和体系结构C.以减少设计过程创建的类的个数D.以保证程序的运行速度达到最优值试题分析此题考的是设计模式基本概念,要求考生清楚设计模式的优缺点。设计模式是对被用来在特写场景下解决一般设计问题的类和相互通信的对象的描述。一般而言,一个设计模式有4个基本要素:模式名称、问题(模式的使用场合)、解决方案和效果。每一个设计模式系统地命名、解释和评价了面向对象系统中一个重要的和重复出现的设计。设计模式
17、使人们可以更加简单、方便地复用成功的设计和体系结构;将已证实的技术变成设计模式,也会使新系统的开发者更加容易理解其设计思路。设计模式可以帮助开发者做出有利于复用的选择,避免设计时损害系统复用性。因此正确的答案为B.试题答案B版权方授权希赛网发布,侵权必究例题10(2006年5月试题38)以下关于单身模式(Singleton)的描述中,正确的是_.A.它描述了只有一个方法的类的集合B.它能够保证一个类只产生一个唯一的实例C.它描述了只有一个属性的类的集合D.它能够保证一个类的方法只能被一个唯一的类调用试题分析此题属于纯概念题,单身模式的提出,其意图就是保证一个类仅有一个实例,并提供一个访问它的全
18、局访问点。所以本题选B.试题答案B版权方授权希赛网发布,侵权必究第 5 章:面向对象方法学作者:希赛教育软考学院 来源:希赛网 2014年02月08日例题11上一节本书简介下一节第 5 章:面向对象方法学作者:希赛教育软考学院 来源:希赛网 2014年02月08日例题12例题11(2006年5月试题39)下列关于一个类的静态成员的描述中,不正确的是_.A.该类的对象共享其静态成员变量的值B.静态成员变量可被该类的所有方法访问C.该类的静态方法只能访问该类的静态成员变量D.该类的静态数据成员变量的值不可修改试题分析类的静态成员与一般的类成员不同:静态成员与对象的实例无关,只与类本身有关。它们用来
19、实现类要封装的功能和数据,但不包括特定对象的功能和数据。静态成员包括静态方法和静态属性。静态属性包含在类中要封装的数据,可以由所有类的实例共享。实际上,除了属于一个固定的类并限制访问方式外,类的静态属性非常类似于函数的全局变量。题目选项D所述的该类的静态数据成员变量的值不可修改这种说法是错误的,静态数据成员变量的值是可以修改的。试题答案D版权方授权希赛网发布,侵权必究例题12(2006年5月试题40)在MVC(模型、视图、控制器)模式中,视图部分描述的是_.A.将应用问题域中包含的抽象领域知识呈现给用户的方式B.应用问题域中所包含的抽象类C.用户界面对用户输入的响应方式D.应用问题域中包含的抽
20、象领域知识试题分析在解题之前,先来看看MVC.模型-视图-控制器(Model-View-Controller,MVC)模式是一种拆分方法,它将应用程序拆分成三个部分:模型、视图和控制器。其中模型表示企业数据管理对该数据的访问和更新的业务规则。通常,模型充当现实世界中的过程的软件模拟,这样,在定义模型的时候即可以应用真实世界的建模技术。视图处理模型的内容,它通过模型访问企业数据,并指定应该如何表示该数据。在模上一节本书简介下一节第 5 章:面向对象方法学作者:希赛教育软考学院 来源:希赛网 2014年02月08日例题13型发生改变时,视图将负责在它的表示中保持一致性,这可以通过使用推(Push)
21、模型(视图向该模型注册,以获取它的改变通知)来实现,也可以使用拉(Pull)模型(此时视图负责在需要检索最新数据时调用模型)来实现。控制器将和视图之间的交互转换为由模型执行的操作。在独立的GUI客户机中,用户交互可能是按钮单击或菜单选择;然而在Web应用程序中,它们则可能是GET和POSTHTTP请求。由模型执行的操作包括激活业务流程或改变模型状态。控制器根据用户交互和模型操作的结果选择合适的视图,从而做出响应。采用MVC体系结构有以下优势。(1)多个视图使用同一个模型。模型和视图的分开使多个视图可以使用相同的企业模型。因此,企业应用程序的模型组件就更容易实现、测试和维护,因为所有对模型的访问
22、都要经过这些组件。(2)对客户机新类型更容易支持。要支持客户机的新类型,只需为其编写一个视图和控制器,然后在已有的企业模型中将它们进行连接即可。模型、视图和控制器之间的关系见图5-1.图5-1 模型、视图和控制器之间的关系示意图视图和控制器都依赖于模型,但是,模型既不依赖于视图,也不依赖于控制器。这是分离的主要优点之一。这样的分离允许模型在独立于可视表示功能的情况下建立和测试。模型:模型用于管理应用程序域的行为和数据,并响应为获取其状态信息(通常来自视图)而发出的请求,还会响应更改状态的指令(通常来自控制器)。视图:视图用于管理信息的显示。控制器:控制器用于解释用户的鼠标和键盘输入,以通知模型
23、和/或视图进行相应的更改。通过对概念的学习,可以得知此题正确答案为:A.试题答案A版权方授权希赛网发布,侵权必究例题13(2006年5月试题41)对于如图5-2所示的UML类图,正确的描述是_.图5-2 UML类图A.类B的实例中包含了对类C的实例的引用B.类A的实例中包含了对类B的实例的引用上一节本书简介下一节第 5 章:面向对象方法学作者:希赛教育软考学院 来源:希赛网 2014年02月08日例题14上一节本书简介下一节第 5 章:面向对象方法学作者:希赛教育软考学院 来源:希赛网 2014年02月08日例题15C.类A的实例中包含了对类C的实例的引用D.类B的实例中包含了对类A的实例的引
24、用试题分析本题考查的是UML中的关联关系。在UML中,关联(Association)是一种结构关系,它指明一个事物的对象与另一个事物的对象之间的联系。给定一个连接两个类的关联,可以从一个类的对象导航到另一个类的对象,反之亦然。在图形上,把关联画成一条连接相同类或不同类的实线。通过一个指定走向的单向箭头修饰关联,可以显示地描述导航的方向。在题目中所示的UML类图中,导航方向为A-B,说明可以从类A的实例导航到类B的实例,因此在类A中必然包含一个对类B的实例引用。图中C表示的是关联一端的角色名称。试题答案B版权方授权希赛网发布,侵权必究例题14(2006年5月试题42)UML中关联的多重度是指_。
25、A.一个类有多少个方法被另一个类调用B.一个类的实例能够与另一个类的多少个实例相关联C.一个类的某个方法被另一个类调用的次数D.两个类所具有的相同的方法和属性试题分析此题属于概念题。在UML中,重复度(Multiplicity)即多重度,定义了某个类的一个实例可以与另一个类的多少个实例相关联。通常把它写成一个表示取值范围的表达式或者一个具体的值。所以此题应选B.试题答案B版权方授权希赛网发布,侵权必究例题15(2006年5月试题43)已知3个类A、B和C,其中类A由类B的一个实例和类C的1个或多个实例构成。能够正确表示类A、B和C之间关系的UML类图是 .供选择的答案试题分析此题涉及UML图中
26、类之间的关系图示法,所以我们得先弄清楚备选答案中出现的几个符号所代表的含义。依赖关系:有两个元素X、Y,如果修改元素X的定义可能会引起对另一个元素Y的定义的修改,则称元素Y依赖(Dependency)于元素X.在UML中,使用带箭头的虚线表示依赖关系,如图5-3所示。图5-3 依赖关系的图示在类中,依赖由各种原因引起,例如,一个类向另一个类发消息;一个类是另一个类的数据成员;一个类是另一个类的某个操作参数。如果一个类的接口改变,它发出的任何消息可能不再合法。泛化关系:泛化关系描述了一般事物与该事物中的特殊种类之间的关系,也就是父类与子类之间的关系。继承关系是泛化关系的反关系,也就是说,子类是从
27、父类继承的,而父类则是子类的泛化。在UML中,使用带空心箭头的实线表示泛化关系,箭头指向父类,如图5-4所示。图5-4 泛化关系的图示在UML中,对泛化关系有3个要求。子类应与父类完全一致,父类所具有的关联、属性和操作,子类都应具有;子类中除了有与父类一致的信息外,还包括额外的信息;可以使用父类实例的地方,也可以使用子类实例。聚合关系:聚合(Aggregation)是一种特殊形式的关联,它是传递和反对称的。聚合表示类之间的关系是整体与部分的关系。例如,一辆轿车包含四个车轮、一个方向盘、一个发动机和一个底盘,就是聚合的一个例子。在UML中,使用一个带空心菱形的实线表示聚合关系,空心菱形指向的是代
28、表整体的类,如图5-5所示。图5-5 聚合关系的图示组合关系:上一节本书简介下一节第 5 章:面向对象方法学作者:希赛教育软考学院 来源:希赛网 2014年02月08日例题16如果聚合关系中表示部分的类的存在与否,与表示整体的类有着紧密的关系,例如公司与部门之间的关系,那么就应该使用组合关系来表示这种关系。在UML中,使用带有实心菱形的实线表示组合关系(见图5-6)。图5-6 组合关系的图示由于题目指出类A由类B的一个实例和类C的1个或多个实例构成,所以类A与类B、类C的关系应为聚合或者组合关系,其示意图如图5-7所示。图5-7 聚合、组合示意图所以答案为:A.试题答案A版权方授权希赛网发布,
29、侵权必究例题16(2006年11月试题33)面向对象分析的第一步是_.A.定义服务 B.确定附加的系统约束C.确定问题域 D.定义类和对象试题分析面向对象分析的步骤如下。第一步,确定问题域。第二步,确定对象和类。这里所说的对象是对数据及其处理方式的抽象,它反映了系统保存和处理现实世界中某些事物的信息的能力。类是多个对象的共同属性和方法集合的描述,它包括如何在一个类中建立一个新对象的描述。第三步,确定结构(structure)。结构是指问题域的复杂性和连接关系。类成员结构反映了泛化-特化关系,整体-部分结构反映整体和局部之间的关系。第四步,确定主题(subject)。主题是指事物的总体概貌和总体
30、分析模型。第五步,确定属性(attribute)。属性就是数据元素,可用来描述对象或分类结构的实例,可在图中给出,并在对象的存储中指定。第六步,确定方法(method)。方法是在收到消息后必须进行的一些处理方法,方法要在图中定义,并在对象的存储中指定。对于每个对象和结构来说,那些用来增加、修改、删除和选择一个方法本身都是隐含的,而有些则是显示的。上一节本书简介下一节第 5 章:面向对象方法学作者:希赛教育软考学院 来源:希赛网 2014年02月08日例题17上一节本书简介下一节第 5 章:面向对象方法学作者:希赛教育软考学院 来源:希赛网 2014年02月08日例题18所以此题的答案为:C.试
31、题答案C版权方授权希赛网发布,侵权必究例题17(2006年11月试题34)面向对象程序设计语言为_提供支持。A.面向对象用例设计阶段 B.面向对象分析阶段C.面向对象需求分析阶段 D.面向对象实现阶段试题分析此题非常容易,程序设计语言是实施阶段用到的工具,故是为面向对象实现阶段提供技术。试题答案D版权方授权希赛网发布,侵权必究例题18(2006年11月试题35)下面关于面向对象的描述正确的是_.A.针对接口编程,而不是针对实现编程B.针对实现编程,而不是针对接口编程C.接口与实现不可分割D.优先使用继承而非组合试题分析针对接口编程,而不是针对实现编程,这是面向对象程序设计的一条重要原则,遵循此
32、原则有以下好处。使用者不必知道其使用对象的具体所属类;使用者无需知道特定类,只需知道他们所期望的接口;一个对象可以很容易地被(实现了相同接口的)另一个对象所替换;对象间的连接不必硬绑定到一个具体类的对象上,因此增加了灵活性。上一节本书简介下一节第 5 章:面向对象方法学作者:希赛教育软考学院 来源:希赛网 2014年02月08日例题19上一节本书简介下一节第 5 章:面向对象方法学作者:希赛教育软考学院 来源:希赛网 2014年02月08日例题20试题答案A版权方授权希赛网发布,侵权必究例题19(2006年11月试题3739)UML的设计视图包含了类、接口和协作,其中,设计视图的静态方面由(3
33、7)和(38)表现;动态方面由交互图、(39)表现。(37)A.类图 B.状态图 C.活动图 D.用例图(38)A.状态图 B.顺序图 C.对象图 D.活动图(39)A.状态图和类图 B.类图和活动图C.对象图和状态图 D.状态图和活动图试题分析UML的9种图可分为表示系统静态结构的静态模型(包括对象图、类图、构件图、部署图),以及表示系统动态结构的动态模型(包括顺序图、协作图、状态图、活动图),其中顺序图和协作图都属于交互图。此外,用例图的分类目前尚有争议,有书上将其分类为动态模型,也有书上将其分类为静态模型,软设的官方标准教程上将其分类为静态模型,而此题中明显将其分类为动态模型,所以为了避
34、免出错,建议大家在解题时先不要考虑用例图,以其他选项来推答案。在第(37)空的备选答案中,类图是明显的静态图,而(38)中对象图是明显的静态图,(39)中将静态图:类图和对象图排除,可以得到状态图和活动图为动态图。由此可见,本题答案为:A,C,D.试题答案:(37)A (38)C (39)D版权方授权希赛网发布,侵权必究例题20(2006年11月试题41)设计模式具有_的优点。A.适应需求变化 B.程序易于理解C.减少开发过程中的代码开发工作量 D.简化软件系统的设计上一节本书简介下一节第 5 章:面向对象方法学作者:希赛教育软考学院 来源:希赛网 2014年02月08日例题21试题分析设计模
35、式是用一种固定的解决方案来解决某一类问题,这种方式第一大优点是方案出错的可能性很小,因为这些方案都是经过很多人实践总结出来的;第二是适应需求变化,如例32中所描述的职责链模式,当系统业务流程有变化时,只需要很少的调整即可达到目的。试题答案A版权方授权希赛网发布,侵权必究例题21(2006年11月试题42)下面的_模式将对象组合成树形结构以表示部分-整体的层次结构,并使得用户对单个对象和组合对象的使用具有一致性。A.组合(Composite)B.桥接(Bridge)C.修饰(Decorator)D.外观(Facade)试题分析下面是常用的23种模式简介。(1)Abstract Factory模式
36、:提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。(2)Adapter模式:将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原来由于接口不兼容而不能一起工作的那些类可以一起工作。(3)Bridge模式:将抽象部分与它的实现部分分离,使它们都可以独立地变化。(4)Builder模式:将一个复杂对象的构建与它的表现分离,使得同样的构建过程可以创建不同的表示。(5)Chain of Responsibility模式:为解除请求的发送者与接收者之间耦合,而使多个对象都有机会处理这个请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它。(6)Com
37、mand模式:将一个请求封装为一个对象,从而使你可用不同请求对客户进行参数化、对请求排队或记录请求日志,以及支持可取消的操作。(7)Composite模式:将对象组合成树形结构以表示部分-整体的层次结构。Composite使得客户对单个对象和复合对象的使用具有一致性。(8)Decorator模式:动态地给一个对象添加一个额外的职责。就扩展功能而言,Decorator模式比生成子类方式更为灵活。(9)Facade模式:为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。(10)Factory Method模式:定义一个用于创建对象的接口
38、,让子类决定将哪个类实例化。上一节本书简介下一节第 5 章:面向对象方法学作者:希赛教育软考学院 来源:希赛网 2014年02月08日例题22Factory Method使一个类的实例化延迟到其子类。(11)Flyweight模式:运用共享技术有效地支持大量细粒度的对象。(12)Interpreter模式:给定一个语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。(13)Iterator模式:提供一种方法顺序访问一个聚合对象中各个元素,而又不需要暴露该对象的内部表示。(14)Mediator模式:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示
39、地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。(15)Memento模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到保存状态。(16)Observer模式:定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。(17)Prototype模式:用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象。(18)Proxy模式:为其他对象提供一个代理,以控制对这个对象的访问。(19)Singleton模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。(2
40、0)State模式:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它所属的类。(21)Strategy模式:定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法的变化可独立于使用它的客户。(22)Template Method模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。(23)Visitor模式:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。从中可以看出题目的正确答案应为:A.试题答案
41、A版权方授权希赛网发布,侵权必究例题22(2006年11月试题43)下图描述了一种设计模式,该设计模式不可以_.上一节本书简介下一节第 5 章:面向对象方法学作者:希赛教育软考学院 来源:希赛网 2014年02月08日例题23图5-8 类图A.动态决定由一组对象中某个对象处理该请求B.动态指定处理一个请求的对象集合,并高效率地处理一个请求C.使多个对象都有机会处理请求,避免请求的发送者和接收者间的耦合关系D.将对象连成一条链,并沿着该链传递请求试题分析本题考的是设计模式中职责链设计模式的基本概念。图中的各元素含义如下。Handler-定义一个处理请求的接口。-(可选)实现后继链。Concret
42、eHandler-具体处理者,处理它所负责的请求。-可访问它的后继者。-如果可处理该请求,就处理之,否则将请求转发给它的后继者。Client-向链上的具体处理者对象提交请求。职责链设计模式的意图就是使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。这样有多个对象可以处理一个请求,具体是哪个对象处理请求要在运行时确定。所以答案A、C、D都是正确的。B选项中提到的高效率地处理一个请求这种讲法是不对的,职责链的处理流程有一个寻找处理对象的过程,这肯定不及指定处理对象的效率高。另外,职责链的优势在于其适应性强
43、,能应对流程的变化,而不是效率高。试题答案B版权方授权希赛网发布,侵权必究例题23(2006年11月试题44)在面向对象程序设计中,常常将接口的定义与接口的实现相分离,可定义不同的类实现相同的接口。在程序运行过程中,对该接口的调用可根据实际的对象类型调用其相应的实现。为达到上述目的,面向对象语言需提供_机制。上一节本书简介下一节第 5 章:面向对象方法学作者:希赛教育软考学院 来源:希赛网 2014年02月08日例题24A.继承和过载(overloading)B.抽象类C.继承和重置(overriding)D.对象自身引用试题分析overload翻译过来就是:超载、过载、重载、超出标准负荷;o
44、verride翻译过来就是:重置、覆盖,使原来的失去效果。在同一可访问区内(如同一个类内)被声明的几个具有不同参数列的(参数的类型、个数、顺序不同)同名函数,程序会根据不同的参数列来确定具体调用哪个函数,这种机制叫做重载,重载不关心函数的返回值类型。这里,重载的重的意思不同于轻重的重,它是重复、重叠的意思。覆盖是指派生类中存在重新定义的函数,其函数名、参数列、返回值类型必须同父类中的相对应被覆盖的函数严格一致,覆盖函数和被覆盖函数只有函数体(花括号中的部分)不同,当派生类对象调用子类中该同名函数时会自动调用子类中的覆盖版本,而不是父类中的被覆盖版本,这种机制叫做覆盖。覆盖的本质就是面向对象,即
45、根据实际的对象类型来调用其相应的实现函数以实现多态。所以答案为C.试题答案C版权方授权希赛网发布,侵权必究例题24(2007年5月试题21)在面向对象的语言中,(21).A.类的实例化是指对类的实例分配存储空间B.每个类都必须创建一个实例C.每个类只能创建一个实例D.类的实例化是指对类进行初始化试题分析类是对某个对象的定义。它包含有关对象动作方式的信息,包括它的名称、方法、属性和事件。实际上它本身并不是对象,因为它不存在于内存中。当引用类的代码运行时,类的一个新的实例,即对象,就在内存中创建了。虽然只有一个类,但能从这个类在内存中创建多个相同类型的对象。可以把类看作理论上的对象,也就是说,它为
46、对象提供蓝图,但在内存中并不存在。从这个蓝图可以创建任何数量的对象。从类创建的所有对象都有相同的成员:属性、方法和事件。但是,每个对象都象一个独立的实体一样动作。例如,一个对象的属性可以设置成与同类型的其他对象不同的值。上一节本书简介下一节第 5 章:面向对象方法学作者:希赛教育软考学院 来源:希赛网 2014年02月08日例题25不一定每个类都必须创建一个实例,如接口类,是不能进行实例化的。试题答案A版权方授权希赛网发布,侵权必究例题25(2007年5月试题22)在统一建模语言(UML)中,(22)用于描述系统与外部系统及用户之间的交互。A.类图B.用例图C.对象图D.协作图试题分析本题考查
47、UML中各种图的功能。UML中需要掌握的有9种图:类图(class diagram):展现了一组对象、接口、协作和它们之间的关系。在面向对象系统的建模中所建立的最常见的图就是类图。类图给出系统的静态设计视图。包含主动类的类图给出了系统的静态进程视图。对象图(object diagram):展现了一组对象以及它们之间的关系。对象图描述了在类图中所建立的事物实例的静态快照。和类图相同,这些图给出系统的静态设计视图或静态进程视图,但它们是从真实的或原型案例的角度建立的。用例图(use case diagram):展现了一组用例、参与者(actor)以及它们之间的关系。用例图给出系统的静态用例视图。这
48、些图对系统的行为进行组织和建模是非常重要的。序列图(sequence diagram):是场景(scenano)的图形化表示,描述了以时间顺序组织的对象之间的交互活动。协作图(collaboration diagram):强调收发消息的对象的结构组织。序列图和协作图都是交互图(interaction diagram)。交互图展现了一种交互,它由一组对象和它们之间的关系组成,包括它们之间可能发送的消息。交互图关注系统的动态视图。序列图和协作图是同构的,它们之间可以相互转换。状态图(statechart diagram):展现了一个状态机,它由状态、转换、事件和活度组成。状态图关注系统的动态视图,
49、它对于接口、类和协作的行为建模尤为重要,它强调对象行为的事件顺序。活动图(activity diagram):是一种特殊的状态图,它展现了在系统内从一个活动到另一个活动的流程。活动图专注于系统的动态视图。它对于系统的功能建模特别重要,并强调对象间的控制流程。构件图(component diagram):展现了一组构件之间的组织和依赖。构件图专注干系统的静上一节本书简介下一节第 5 章:面向对象方法学作者:希赛教育软考学院 来源:希赛网 2014年02月08日例题26上一节本书简介下一节第 5 章:面向对象方法学作者:希赛教育软考学院 来源:希赛网 2014年02月08日例题27态实现视图。它与
50、类图相关,通常把构件映射为一个或多个类、接口或协作。部署图(deployment diagram):展现了运行处理节点以及其中的构件的配置。部署图给出了体系结构的静态实施视图。它与构件图相关,通常一个节点包含一个或多个构件。试题答案B版权方授权希赛网发布,侵权必究例题26(2007年5月试题36)面向对象分析与设计是面向对象软件开发过程中的两个重要阶段,下列活动中,(36)_不属于面向对象分析阶段。A.构建分析模型B.识别分析类C.确定接口规格D.评估分析模型试题分析面向对象分析的目的是为了获得对应用问题的理解。理解的目的是确定系统的功能、性能要求。面向对象分析阶段包含5个活动:认定对象、组织