软件体系结构中国大学mooc完整答案-买球的app软件下载

8729 人参与  2023-01-04 06:23:05    点这评论
软件体系结构概述

1.1 软件体系结概述随堂测验

1、软件体系结构是研究软件需求的吗?

2、java语言属于软件体系结构的研究范畴

3、软件体系结构是研究代码架构的一门学科。

4、客户端/服务器模型是一种软件架构模型。

5、软件架构描述了软件内部各个构件和构件之间的关系。

1. 单元测试

1、软件体系结构权衡分析是
    a、atm方法
    b、atam方法
    c、saam方法
    d、qaw方法

2、下面哪个不属于软件体系结构形式化描述方法
    a、uml语言描述
    b、xadl方法
    c、c2方法
    d、wright方法

3、常用的软件体系结构建模工具是
    a、java开发工具
    b、visual studio 2019开发工具
    c、archstudio开发工具
    d、uml开发工具

4、下面哪个不是软件体系结构风格?
    a、云体系结构风格
    b、分层风格
    c、数据分享风格
    d、客户端/服务器风格

5、下面哪个不属于软件体系结构研究的范畴?
    a、软件体系评价方法
    b、软件体系结构风格
    c、软件体系结构描述
    d、软件体系用户需求

6、下面哪个不是软件体系结构风格?
    a、解释器风格
    b、管道-过滤器风格
    c、黑板风格
    d、mvc三层风格

7、下面哪个属于软件体系结构研究范围?
    a、用户需求建模
    b、用户代码建模
    c、软件测试策略
    d、软件部署

测试1 补充

1、软件体系结构权衡分析是
    a、atm方法
    b、atam方法
    c、saam方法
    d、qaw方法

2、下面哪个不属于软件体系结构形式化描述方法
    a、uml语言描述
    b、xadl方法
    c、c2方法
    d、wright方法

3、常用的软件体系结构建模工具是
    a、java开发工具
    b、visual studio 2019开发工具
    c、archstudio开发工具
    d、uml开发工具

4、下面哪个不是软件体系结构风格?
    a、云体系结构风格
    b、分层风格
    c、数据分享风格
    d、客户端/服务器风格

5、下面哪个不属于软件体系结构研究的范畴?
    a、软件体系评价方法
    b、软件体系结构风格
    c、软件体系结构描述
    d、软件体系用户需求

6、下面哪个不是软件体系结构风格?
    a、解释器风格
    b、管道-过滤器风格
    c、黑板风格
    d、mvc三层风格

7、下面哪个属于软件体系结构研究范围?
    a、用户需求建模
    b、用户代码建模
    c、软件测试策略
    d、软件部署

第一张作业

1、1.常用的软件体系结构形式化描述工具有哪些?

2、请描述面向对象风格软件体系的特点。

3、请描述基于场景的软件体系评估方法和步骤。

设计模式

第二单元测验

1、设计模式具有( )的优点。
    a、提高系统性能
    b、降低软件规模和复杂度
    c、减少代码开发工作量
    d、提升软件设计的质量

2、在面向对象软件的开发过程中,采用设计模式( )
    a、可以减少在设计和实现过程中需要创建的实例对象的数量。
    b、可以保证程序的运行速度达到最优值
    c、可以复用相似问题的相同买球的app软件下载的解决方案
    d、允许在非面向对象程序设计语言中使用面向对象的概念

3、( )是行为型设计模式
    a、组合模式,适配器模式,代理模式
    b、观察者模式,职责链模式,策略模式
    c、原型模式,建造者模式,单例模式
    d、迭代器模式,命令模式,桥接模式

4、关于单一职责模式,叙述错误的是( )
    a、一个类只负责一个功能领域中的相应职责
    b、就一个类而言,应该有且仅有一个引起它变化的原因
    c、一个类承担的职责越多,越容易复用,被复用的可能性越大
    d、当一个类承担的职责过多时,需要将职责进行分离,将不同的职责封装在不同的类中

5、以下关于面向对象设计的叙述中,错误的是( )
    a、高层模块不应该依赖于底层模块
    b、抽象不应该依赖于细节
    c、细节可以依赖于抽象
    d、高层模块无法不依赖于底层模块

6、在系统设计中应用迪米特法则,叙述错误的是( )
    a、在类的划分上,应该尽量创建松耦合的类,类的耦合越低,复用越容易
    b、如果两个类之间不必彼此直接通信,那么这两个类就不应该发生直接的相互作用
    c、在对其他类的引用上,一个对象对其他对象的引用应该降到最低
    d、在类的设计上,只要有可能,一个类型应该尽量设计成抽象类或接口,且成员变量和成员函数的访问权限最好设置为公开的(public)

7、设计模式按范围可以分为类模式和对象模式。

8、代理模式属于行为型模式。

9、单例模式属于结构型模式

10、原型模式属于创建型模式。

11、命令模式属于结构型模式。

第二单元作业

1、结合面向对象设计七项基本原则,谈谈对类和接口“粒度”的理解。

2、某软件公司要开发一个跨平台图像浏览系统,要求该系统能够显示bmp、jpg、gif、png等多种格式的文件,并且能够在windows、linux、unix等多个操作系统上运行。系统首先将各种格式的文件解析为像素矩阵(matrix),然后将像素矩阵显示在屏幕上,在不同的操作系统中可以调用不同的绘制函数来绘制像素矩阵。 要求: 请指出模型的不足指出,并根据依赖倒转原则和合成复用原则重新设计。

3、设计模式有哪些优点?

简单工厂模式和工厂模式

测验3

1、在简单工厂模式中,如果需要增加新的具体产品,通常需要修改( )的源代码。
    a、抽象产品类
    b、其他具体产品类
    c、工厂类
    d、客户类

2、以下关于简单工厂模式叙述错误的是( )。
    a、简单工厂模式可以根据参数的不同返回不同的产品类的实例。
    b、简单工厂模式专门定义了一个类来负责创建其他类的实例,被创建的实力通常都具有共同的父类。
    c、简单工厂模式可以减少系统中的类的个数,简化系统的设计,使得系统更容易理解。
    d、系统的扩展困难,在添加新的产品时,需要修改工厂的业务逻辑,违背了开闭原则。

3、不同品牌的手机应该由不同的公司制造,例如:monorola公司生产motorola手机,nokia公司生产nokia手机。该场景蕴含了( )模式。
    a、简单工厂模式
    b、工厂方法模式
    c、抽象工厂模式
    d、建造者模式

4、以下关于工程方法模式的叙述错误的是( )。
    a、在工厂方法模式中引入了抽象工厂类,而具体产品的创建延迟到具体工厂中实现。
    b、使用工程方法模式添加新的产品对象很容易,无须对原有系统进行修改,符合开闭原则。
    c、工程方法模式存在的问题是在添加新差评你时,需要编写新的具体产品类,而且要提供与之对应的具体工厂类,随着类的个数增加,会给系统带来一些额外的开销。
    d、工程方法模式是所有形式的工程模式中最为抽象和最具一般性的一种形态,工程方法模式退化后可以演变为抽象工厂模式。

5、在.net开发环境中,程序集的配置参数通常保存在( )文件中。
    a、"app.config"文件中。
    b、"web.confi"g文件中。
    c、与程序集同名,扩展名为config的文件中。
    d、系统注册表中。

6、在程序集的配置文件中添加配置参数name="张三",下面哪个是不正确的。
    a、
    b、 张三
    c、 张三
    d、 张三

7、工厂方法模式符合开闭原则。

8、简单工厂模式符合开闭原则。

9、简单工厂模式中具体工厂类与抽象产品类可以合并。

10、简单工厂模式是工厂模式的简化。

11、使用工厂方法模式提高了代码效率,模型扩展更容易。

12、工厂方法模式引入抽象产品和抽象工厂,在客户端代码中均使用抽象层编程,减低了系统的理解难度。

作业3

1、设计一个可以创建不同几何形状(shape),如圆形,矩形和三角形等绘图工具类,每个几何图形均具有绘图方法draw()和擦除方法erase(),要求在绘制不支持的图形时,抛出异常。 要求: 1.使用简单工厂模式创建类图模型并编写代码实现。(模型截图上传,代码打包上传) 2.使用工厂方法模式创建类图模型并编写代码实现。(模型截图上传,代码打包上传)

抽象工厂模式

测验4

1、某公司要开发一个图标显示系统,在该系统中,曲线图生成器可以创建曲线图、曲线图图例和曲线图数据标签,柱状图生成器可创建柱状图、柱状图图例和柱状图数据标签。用户要求可以很方便地增加新类型的图形,系统需具有较好的可扩展能力。针对这种需求,公司采用( )最为恰当。
    a、桥接模式
    b、简单工厂模式
    c、工厂模式
    d、抽象工厂模式

2、以下关于抽象工厂模式的叙述错误的是( )。
    a、抽象工厂模式提供了一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。
    b、当系统中有多于一个产品族时,可以考虑使用抽象工厂模式
    c、当一个工厂等级结构可以创建出分属于不同产品等级结构的一个产品族中的所有对象时,抽象工厂模式比工厂模式更为简单,高效
    d、抽象工厂模式符合开闭原则,增加新产品族和新的产品等级结构都很方便。

3、下列关于抽象工厂模式中的产品族和产品等级结构的叙述,错误的是( )。
    a、产品等级结构是从不同的产品族中任意选取产品组成的层次结构。
    b、产品族是指由位于不同产品等级结构、功能相关的产品组成的家族
    c、抽象工厂是指一个工厂等级结构可以创建出分属于不同产品等级结构的一个产品族中的所有对象。
    d、工厂方法模式对应唯一一个产品等级结构,而抽象工厂模式则需要对应多个产品等级结构。

4、工厂模式是抽象工厂模式的特殊形式。

5、抽象工厂模式是工厂模式的一般形式。

6、抽象工厂模式是工厂模式的特殊形式。

7、工厂模式是抽象工厂模式的一般形式。

8、工厂模式和抽象工厂模式都符合开闭原则。

9、工厂模式和抽象工厂模式都不符合开闭原则。

10、抽象工厂模式在增加产品族时符合开闭原则。

11、抽象工厂模式在增加产品等级结构时符合开闭原则。

作业4

1、某基于.net平台的系统需要改进数据库操作的性能,使用户可以自定义数据库连接对象connection和数据库命令对象command,针对不同类型的数据库提供不同的连接对象和命令对象,例如提供oracle或mysql专用连接类和命令类,而且用户可以通过配置文件等方式根据实际需要动态更换系统数据库以及增加新的额书库链接类和数据命令类。使用抽象工厂模式设计该系统,要求户籍制对应的类图并使用c#语言编程模拟实现。

2、某软件公司要开发一套界面皮肤库,可以对基于.net平台的桌面软件进行界面美化。用户在使用时可以通过菜单来选择皮肤,不同的皮肤将提供视觉效果不同的按钮、文本框、组合框等界面元素,例如春天(spring)风格的皮肤将提供浅绿色的按钮、绿色边框的文本框和绿色边框的组合框,而夏天(summer)风格的皮肤则提供浅蓝色的按钮、蓝色边框的文本框和蓝色边框的组合框,其结构示意图如下图所示: 该皮肤库需要具备良好的灵活性和可扩展性,用户可以自由选择不同的皮肤,开发人员可以在不修改既有代码的基础上增加新的皮肤。 现使用抽象工厂模式来设计该界面皮肤库。

建造者模式

测验

1、以下关于建造者模式的叙述,错误的是( )。
    a、建造者模式将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
    b、建造者模式允许用户只通过指定复杂对象的类型和内容就可以创建它们,而不需要知道内部的具体构建细节。
    c、当需要创建的产品对象有复杂的内部结构时,可以考虑使用建造者模式。
    d、在建造者模式中,各个具体的建造者相互之间通常具有较强的依赖关系,可通过指挥者类组成一个完整的产品对象返回给客户。

2、当需要创建的产品具有复杂的内部结构时,为了逐步构造完整的对象,并使得对象的创建更具灵活性,可以使用( )。
    a、抽象工厂模式
    b、简单工厂模式
    c、工厂模式
    d、建造者模式

3、关于建造者模式中的director类的描述,错误的是( )。
    a、director类隔离了客户类及创建过程。
    b、在建造者模式中,客户类指导director类去生成对象或者合成一些类,并逐步构造一个复杂对象。
    c、director类构建一个抽象建造者builder子类的对象。
    d、director与抽象工厂模式中的工厂类类似,负责返回一个产品族中的所有产品。

4、在建造者模式中,为了使客户端源代码在模型扩展时不做任何修改,需要使用( )技术来动态创建具体的建造者对象。
    a、对象序列化技术
    b、对象反射技术
    c、对象实例化技术
    d、对象抽象技术

5、建造者模式符合开闭原则。

6、建造者模式不符合开闭原则。

7、在建造者模式中,指挥者类director作用类似于简单工厂模式中的工厂对象。

8、在建造者模式中,指挥者类director作用类似于工厂模式中的抽象工厂对象。

9、建造者模式中,指挥者类director隔离了客户端与复杂对象的创建过程。

10、建造者模式中,客户端需要了解复杂对象的创建过程。

作业5

1、某游戏软件公司决定开发一款基于角色扮演的多人在线网络游戏,玩家可以在游戏中扮演虚拟世界中的一个特定角色,角色根据不同的游戏情节和统计数据(例如力量、魔法、技能等)具有不同的能力,角色也会随着不断升级而拥有更加强大的能力。 作为该游戏的一个重要组成部分,需要对游戏角色进行设计,而且随着该游戏的升级将不断增加新的角色。通过分析发现,游戏角色是一个复杂对象,它包含性别、面容等多个组成部分,不同类型的游戏角色,其性别、面容、服装、发型等外部特性都有所差异,例如“天使”拥有美丽的面容和披肩的长发,并身穿一袭白裙;而“恶魔”极其丑陋,留着光头并穿一件刺眼的黑衣。 无论是何种造型的游戏角色,它的创建步骤都大同小异,都需要逐步创建其组成部分,再将各组成部分装配成一个完整的游戏角色。现使用建造者模式来实现游戏角色的创建。

2、某软件公司要开发一个视频播放软件,为了给用户使用提供方便,该播放软件提供了多种显示模式,如完整模式、精简模式、记忆模式等。在不同的显示模式下主界面的组成元素有所差异,如在完整模式下将显示菜单、播放列表、主窗口、控制条等,在精简模式下只显示主窗口和控制条,而在记忆模式下将显示主窗口、控制条、收藏列表等。使用建造者模式设计该软件。

原型模式

测验6

1、关于c#中的memberwiseclone()方法,以下叙述有误的是( )。
    a、对于对象x, 都有x.memberwiseclone() == x
    b、对于对象x, 都有x.memberwiseclone().gettype() == x.gettype()
    c、对于对象x的成员对象member, 都有x.memberwiseclone().member == x.member
    d、对于对象x的成员对象member, 都有x.memberwiseclone().member.gettype() == x.member.gettype()

2、以下关于原型模式叙述错误的是( )。
    a、原型模式通过给出一个原型对象类指明所要创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象。
    b、浅克隆仅仅复制所考虑的对象,而不复制它所引用的对象,也就是其中的成员对象并不复制。
    c、在原型模式中实现沈克隆时通常需要编写较为复杂的代码。
    d、在原型模式中不需要为每个类配备一个克隆方法,因此对于原型模式的扩展很灵活,对于已有类的改造也较为容易。

3、某公司要开发一个即时聊天软件,用户在聊天过程中可以与多个好友同时聊条,在私聊时将产生多个聊天窗口,为了提高聊天窗口的创建效率,要求根据第一个窗口快速创建其它窗口。针对这种需求,采用( )进行设计最为合适。
    a、工厂方法模式
    b、抽象工厂模式
    c、简单工厂模式
    d、原型模式

4、下列哪些技术采用了原型模式中的浅克隆技术。
    a、windows操作系统中的文件快捷方式复制
    b、windows操作系统中的文件复制
    c、windows操作系统中的文件夹复制
    d、windows操作系统中的驱动器拷贝

5、c#语言自带的克隆接口名称是( )
    a、clone接口
    b、iclone接口
    c、clonable接口
    d、iclonable接口

6、原型模式不符合开闭原则

7、浅克隆不能实现对象中值类型成员的复制。

8、深克隆可以使用对象序列化技术来实现。

9、深克隆技术可以实现对象中引用类型成员的复制。

10、原型模式的深克隆技术中需要复制对象的操作

作业6

1、为某销售管理系统设计并实现一个客户类customer,在客户类包含一个名为客户地址的成员变量,客户地址的类型为address,用浅克隆和深克隆分别实现customer对象的复制,并比较这两种克隆方法的异同。

2、某公司要创建一个公文管理器,在公文管理器中提供一个集合对象来存储一些常用的公文模板,用户可以通过复制浙西公文模板快速创建新的公文。试用带有原型管理器的原型模式来设计该公文管理器,并使用c#代码编程模拟。

单例模式

测验7

1、在( )时可以使用单例模式。
    a、隔离菜单项对象的创建和使用。
    b、防止一个资源管理器窗口被实例化多次。
    c、使用一个已有的查找算法而不想修改既有代码。
    d、不能创建子类,需要扩展一个数据过滤类。

2、以下关于单例模式的描述,正确的是( )。
    a、描述了只有一个方法的类的集合。
    b、能够保证一个类只产生一个唯一的实例。
    c、描述了只有一个属性的类的集合。
    d、能够保证一个类的方法只能被一个唯一的类调用。

3、以下( )不是单例模式的要点。
    a、某个类只能有一个实例。
    b、单例类不能被继承。
    c、必须自行创建单个实例。
    d、必须自行向整个系统提供单个实例。

4、单例对象可以通过new方法实例化。

5、饿汉单例模式可以预防并发冲突。

6、懒汉单例模式主要用来预防并发冲突,而饿汉单例模式不是。

7、懒汉单例模式中的实例对象也可以在类加载的时候创建。

作业7

1、分析并理解饿汉单例模式和懒汉单例模式的异同。

2、单例模式可以用来为客户端提供单个实例对象,如果需要提供双例模式、三例模式、....,k例模式,应该如何实现?

3、使用vs.net设计一个多文档窗口,然后创建一个工具栏toolstrip,在工具栏上添加一个按钮,单机该按钮会弹出一个“工具”窗口,使用单例模式进行设计,使得“工具”窗口每次只能弹出同一个。

装饰模式

测验11

1、当不能采用生成子类的方法进行扩展时,可采用( )模式动态地给要给对象添加一些额外的职责。
    a、外观模式
    b、单例模式
    c、参与者模式
    d、装饰模式

2、( )不是装饰模式的适用条件。
    a、要扩展一个类的功能或给一个类增加附加职责。
    b、要动态地给一个对象增加功能,这些功能还可以动态撤销。
    c、要动态组合多余一个的抽象化角色和实现化角色。
    d、要通过一些基本功能的组合产生复杂的功能,而不是使用继承关系。

3、( )全部为结构性设计模式。
    a、组合模式,装饰模式,代理模式。
    b、单例模式,原型模式,建造者模式。
    c、外观模式,享元模式,策略模式。
    d、状态模式,命令模式,迭代模式

4、某视频播放软件要求能够支持avi,wma,rmvb等多种视频文件格式,并且能够在windows,linum,unix等多种操作系统上运行时,为满足上述需求并减少所需生成的子类数量,可以使用( )对该视频播放软件进行设计。
    a、适配器模式
    b、桥接模式
    c、装饰模式
    d、命令模式

5、关于透明装饰模式和不透明装饰模式,下面的叙述错误的是( )。
    a、透明装饰模式要求客户端完全针对抽象编程,而不透明装饰模式要求针对具体装饰类型对象编程。
    b、透明装饰模式可以对同一个对象多次装饰,而半透明装饰模式则不可以对同一个对象多次装饰。
    c、透明装饰模式和半透明装饰模式都可以用来替代对象的继承关系。
    d、透明装饰模式和半透明装饰模式提供了一种比继承更加灵活的买球的app软件下载的解决方案,是代码结构更加容易理解和排错。

作业11

1、某咖啡店的店员在卖咖啡时,可以根据顾客的要求在其中加入各种配料,并根据所加入的配料来计算总费用。咖啡店所供应的咖啡及配料的种类和价格如表: 浓缩咖啡:单价25元/杯 混合咖啡:单价30元/杯 烘培咖啡:单价20元/杯 配料 1.摩卡:10元/份 2.奶泡:8元/份 3.牛奶:6元/份 请使用装饰模式为该咖啡店设计一个程序来实现计算费用的功能,能输出每种饮料的详细描述及花费。比如:浓缩咖啡,摩卡,牛奶 合计41元。

2、某软件公司要开发一个数据加密模块,可以对字符串加密。最简单的加密算法通过对字母进行移位来实现,同时还提供你想输出加密以及更高级的加密算法。用户先使用最简单的加密算法对字符串加密后,如果觉得还不够,可以对加密之后的结果使用其他加密算法进行二次加密,当然也可以进行第三次加密。请使用装饰模式设计该多重加密系统。

适配器模式与代理模式

测验8

1、windows操作系统中的应用程序快捷方式是( )模式的应用实例。
    a、代理模式
    b、工厂模式
    c、原型模式
    d、适配器模式

2、以下关于代理模式的叙述错误的是( )。
    a、代理模式能够协调调用者和被调用者,从而在一定程度上降低系统的耦合度。
    b、控制对一个对象的访问,给不同的用户提供不同级别的使用权限时可以考虑使用远程代理
    c、代理模式的缺点是请求的处理速度会变慢,并且实现代理模式需要额外的工作。
    d、代理模式给某一个对象提供一个代理,并由代理对象控制对原对象的引用。

3、代理模式有多种类型,其中,智能引用代理是指( )。
    a、为某一个目标操作的结果提供临时的存储空间,以便多个客户端可以共享这些结果。
    b、保护目标不让恶意用户接近
    c、使几个用户能够同时使用一个对象而没有冲突
    d、当一个对象被引用时,提供一些额外的操作,例如将此对象被调用的次数记录下来

4、( )将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能在一起工作的那些类可以一起工作。
    a、工厂方法模式
    b、适配器模式
    c、代理模式
    d、单例模式

5、以下关于适配器模式的叙述错误的是( )。
    a、适配器模式将一个接口转换为客户希望的另外一个接口,使得原本接口不兼容的那些类可以一起工作
    b、在类适配器中,adapter和adaptee是继承关系,而在对象适配器中,adapter和adaptee是关联关系。
    c、类适配器比对下适配器更加灵活,在c#语言中可以通过类适配器一次适配多个适配者类
    d、适配器可以在不修改原来适配器接口adaptee的情况下将一个类的接口和另一个类的接口匹配起来

6、现需要开发一个文件转换软件,将文件由一种格式转换为另一种格式,有些文件格式转换代码已经存在,为了将已有的代码应用于心软件,而不需要修改软件的整体结构,可以使用( )模式进行系统设计。
    a、适配器 模式
    b、代理模式
    c、组合模式
    d、桥接模式

7、在对象适配器中,适配器类(adapter)和适配者类(adaptee)是( )。
    a、关联关系
    b、依赖关系
    c、继承关系
    d、实现关系

8、在对象适配器中,适配器类(adapter)和适配者类(adaptee)是继承关系。

9、在类适配器中,适配器类(adapter)和适配者类(adaptee)是继承关系。

10、原型模式是一种结构型模式。

11、结构性模式用来描述对象与对象之间的关系,而不是类与类之间的关系。

12、代理模式本质上与对象适配器模式是一致的。

13、代理模式本质上与类适配器模式是一致的。

作业8

1、保护代理和远程代理有什么不同,举例说明。

2、使用c#语言开发一个简单的web service应用,在远程服务器上实现加、减、乘、除运算,然后在本地调用这些运算。

3、为什么需要使用缺省适配器?举例说明。

4、windows media player和realplayer是两种常见的媒体播放器,他们的api结构和调用方法存在区别。现在需要设计一个应用程序,能够支持这两种播放器,而且将来可能还要支持新的播放器,请使用适配器模式设计该应用程序。

桥接模式和外观模式

测验9

1、( )模式将抽象部分与它的实现部分相分离,使他们都可以独立地变化。
    a、适配器模式
    b、代理模式
    c、桥接模式
    d、外观模式

2、一下关于桥接模式,叙述错误的是( )。
    a、桥接模式将抽象化与实现化解耦,使得两者可以独立地变化。
    b、桥接模式将继承关系转换成关联关系,从而降低系统的耦合度
    c、桥接模式可以动态地给一个对象增加功能,这些功能也可以动态地撤销
    d、桥接模式可以从接口中分离实现功能,使得设计更具有扩展性。

3、( )不是桥接模式适用的环境。
    a、一个可以跨平台并支持多个格式的文件转换器
    b、一个支持多数据源的报表生成工具,可以以不同的图形方式显示报表信息
    c、一个可动态选择排序算法的数据操作工具
    d、一个支持多种编程语言的跨平台的开发工具

4、已知某子系统为外界提供功能服务,但该子系统中存在很多粒度较小的类,不方便被外界系统直接使用,采用( )模式可以顶一个一个高层接口,这个接口使得这一子系统更加容易使用。
    a、外观模式
    b、桥接模式
    c、单例模式
    d、代理模式

5、下图是( )模式的结构图。
    a、桥接模式
    b、单例模式
    c、外观模式
    d、工厂方法模式

6、以下关于外观模式叙述错误的是( )。
    a、在外观模式中,一个子系统的外部与内部的通信可以通过一个统一的外观对象进行
    b、在增加外观对象之后,客户类只需要直接和外观对象交互即可,与子系统类之间的复杂引用关系由外观对象来实现,降低了系统的耦合度。
    c、外观模式可以很好地限制客户类使用子系统类,对客户类访问子系统类做限制可以提高系统的灵活性
    d、外观模式可以很好地限制客户端类使用子系统类,对客户类访问子系统类做限制可以提高系统的灵活性。

7、桥接模式不符合开闭原则。

8、外观模式中客户端无法直接访问子系统

9、当要为访问一系列复杂的子系统提供一个简单入口时可以使用外观模式

10、桥接模式通过分离抽象接口及其实现部分,减少了子类的个数

11、桥接模式在扩展时,不符合开闭原则。

作业9

1、如果系统中存在两个以上的变化维度,是否可以使用桥接模式进行处理?如果可以,系统该如何设计?

2、某软件公司要开发一个数据转换工具,可以将数据库中的数据转换成多种文件格式,如txt,xml,pdf格式,同时该工具需要支持多种不同的数据库。请使用桥接模式进行设计,并给出c#代码。

3、某软件公司为新开发的智能手机控制与软件提供了一键备份功能,通过该功能可以将原本存在在手机中的通信录、短信、照片、歌曲等资料一并复制到移动存储介质中,在实现过程中需要与多个已有的类进行交互,例如通讯录管理类、短信管理类等,为了降低系统的耦合度,请使用外观模式来设计,并给出c#代码。

组合模式和享元模式

测验10

1、操作系统的树形结构体现了( )模式。
    a、适配器模式
    b、桥接模式
    c、代理模式
    d、组合模式

2、以下关于组合模式的叙述错误的是( )。
    a、组合模式对叶子对象和组合对象的使用具有一致性。
    b、组合模式可以很方便地保证在一个容器中只能由某些特定的构件。
    c、组合模式将对象组织到树形结构中,可以用来描述整体与部分的关系。
    d、组合模式使得用户可以很方便地在组合体中加入新的对象构件,且客户端不需要因为加入新的对象构件而更改类库代码。

3、现在需要开发一个xml文档处理软件,通过该软件用户可以根据关键字查询指定内容,可以在xml中任意选取某一结点作为查询的初始节点,而无需关心该节点所处的层次结构。针对该需求,可以使用( )模式来进行设计。
    a、工厂方法模式
    b、代理模式
    c、适配器模式
    d、组合模式

4、当应用程序由于使用大量的对象,造成很大的存储开销时,可以采用( )模式运用共享技术来有效地支持大量细粒度对象的重用。
    a、外观模式
    b、组合模式
    c、享元模式
    d、代理模式

5、在享元模式中,外部状态时指( )。
    a、享元对象可以共享的所有状态。
    b、享元对象可以共享的部分对象。
    c、由享元对象自己保存和维护的状态。
    d、由客户端保存和维护的状态。

6、以下关于享元模式叙述错误的是( )。
    a、享元模式运用共享技术有效地支持大量细粒度对象的复用。
    b、在享元模式中可以多次使用某个对象,通过引入外部状态使得这些对象有所差异。
    c、享元对象能够做到共享的关键是引入了享元池,在享元池中通过克隆方法向客户端返回所需的对象。
    d、在享元模式中,外部状态是随环境改变而改变,不可以共享的状态,而内部状态时不随环境改变而改变,可以共享的状态。

7、组合模式在扩展叶子对象时,符合开闭原则。

8、在单纯享元模式中,所有具体的享元类不可以共享。

9、为了使对象可以共享,享元模式将部分状态外部化,提高了读取外部状态的时间。

10、组合模式可以对容器中的构件进行限制。

11、组合模式增加新的构件很方便,符合开闭原则。

12、组合模式需要分别处理叶子对象和容器对象。

作业10

1、在组合模式的结构图中,如果聚合关联关系不是从composite到component的,而是从composite到leaf,如下图所示,会产生怎样的结果?

2、某软件公司要开发一个界面控件库,界面控件分为单元控件和容器控件,单元控件包括标签、文本框等;容器控件包括窗体、面板等,请用组合模式设计。

3、某软件公司要开发一个多功能文档编辑器,在文本文档中可以插入图片、动画、视频等多媒体资料。为了节约资源,相同的资源在同一个文档中只需要保存一次,但可以多次重复出现,而且每次出现的位置和大小均可不相同。请用享元模式设计该文档编辑器。

职责链模式和命令模式

测验12

1、接力赛跑体现了( )模式。
    a、职责链模式
    b、命令模式
    c、桥接模式
    d、代理模式

2、下面关于职责链模式叙述错误的是( )。
    a、可以动态决定由一组对象中的某个对象处理请求
    b、动态指定处理一个请求的对象集合,并高效率地处理一个请求。
    c、使多个对象都有机会处理请求,避免请求的发送者和接收者之间的耦合关系。
    d、将对象连成一条链,并沿着该链传递请求。

3、以下关于命令模式的叙述错误的是( )。
    a、命令模式将一个请求封装为一个对象,从而可以用不同的请求对客户进行参数化。
    b、命令模式可以将请求发送者和请求接收者解耦。
    c、使用命令模式会导致某些系统又过多的具体命令类,导致在有些系统中命令模式变得不切实际。
    d、命令模式对命令的封装,命令模式把发出命令的责任和执行命令的责任集中在同一个类中,委派给同意的类来进行处理。

4、在( )时,无需使用命令模式。
    a、实现撤销操作和恢复操作。
    b、将请求的发送者和接收者解耦
    c、不改变聚合类的前提下定义作用于聚合中元素的新操作。
    d、不同的时间指定请求,并将请求排队。

5、撤销操作时很多软件系统的基本功能之一,在设计模式中,( )模式可用于设计和实现撤销功能。
    a、适配器或代理模式
    b、桥接模式或命令模式
    c、命令模式或备忘录模式
    d、职责链模式或代理模式

6、单一职责原则要求一个类只负责要给功能领域中的相应职责,在设计模式中,( )模式体现了该原则。
    a、单例模式和适配器模式
    b、代理模式和外观模式
    c、外观模式和命令模式
    d、工厂方法模式和装饰模式

作业12

1、使用命令模式编写一个简易计算器,能够实现多次undo和redo操作。

2、c#语言中的一场处理机制是职责链模式一个应用实例,举例说明。

3、某oa系统需要提供一个假条审批模块:如果员工请假天数少于3天,主任可以审批假条;如果请假天数多于等于3天,少于10天,经理可以审批;如果多余等于10天,少于30天,总经理可以审批;如果超过30天,总经理批示拒绝。请使用职责链模式设计该审批模式,要求绘制模型并编写代码。

解释器模式

测验13

1、当要给待解释的语言中的句子可以表示为一颗抽象语法树时,可以使用解释器模式。

2、在解释器模式中使用类表示文法规则,可以方便地改变或者扩展文法。

3、解释器模式既适用于文法简答的小语言,也适用于文法非常复杂的语言解析。

4、需要自定义一个小语言,如一些简单的控制指令时,可以考虑使用解释器模式。

5、解释器模式的优点是易于扩展,缺点是对于复杂文法难以维护。

6、解释器模式在扩展新的文法规则时,不符合开闭原则。

作业13

1、简要说明解释器模式的优缺点。

2、现需要构造一个语言解释器,能够实现简单的四则运算(加、减、乘、除),用户任意输入:2 3*4/2-3,输出5。需要注意表达式中乘、除优先级高于加和减。

14.1 迭代器模式介绍

测试14

1、迭代器模式可以用于处理具有单例性质的类。

2、迭代器模式不能用于处理具有聚集性质的类。

3、迭代器模式可以用于处理具有共享性质的类。

4、迭代器模式提供了一种方法来访问聚合对象,而无须暴露这个对象的内部表示。

5、迭代器模式支持以不同的方式遍历一个聚合对象。

6、迭代器模式定义了一个访问聚合元素的接口,并且可以跟踪当前遍历的元素,了解哪些元素已经遍历与否。

7、迭代器模式将数据存储和数据遍历分离,聚合类负责数据存储,迭代器负责数据遍历,体现了单一职责原则。

8、迭代器模式将数据存储和数据遍历分离,聚合类负责数据存储,迭代器负责数据遍历,体现了依赖倒转原则。

9、迭代器模式将数据存储和数据遍历分离,聚合类负责数据存储,迭代器负责数据遍历,体现了接口隔离原则。

10、迭代器模式将数据存储和数据遍历分离,聚合类负责数据存储,迭代器负责数据遍历,体现了合成复用原则。

作业14

1、扩展.net中的arraylist类,定义一个reversearraylist类,要求实现逆向便利这个类的内部元素。

2、组合模式和迭代器模式都用来解决聚合类的问题,两者在使用上有什么不同点?举例说明。

下一篇 >>

相关文章

备案号: 买球平台网址的版权所有 买球平台网址 copyright © 2012-2023 青果答案 all rights reserved. sitemap