ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:47.89KB ,
资源ID:10285012      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10285012.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C#设计模式试题.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C#设计模式试题.docx

1、C#设计模式试题一、简答题(10分)1.1(3 分)什么是设计模式?设计模式的目标是什么?设计模式是软件设计过程当中某一类常见问题的一般性问题的解决方案。1.2(3 分)设计模式具有哪三大特点?1.3(4 分)GOF 设计模式常用的有几种?GOF 设计模式按照模式的目的可分为哪三类?行为型,结构型,创建型二、填空题(20分,每空2分)请从外观、访问者、组合、工厂方法、模板方法、观察者、轻量级、原型、责任链、单例、抽象工厂、命令12 种模式中选择10 种填入下列的空缺中。2.1 ( 工厂方法)模式中,父类负责定义创建对象的公共接口,子类则负责生成具体的对象。2.2 (抽象工厂)模式提供一系列相关

2、或相互依赖对象的接口而无需指定它们具体的类。2.3 (原型)模式用原型实例指定创建对象的种类,并且通过拷贝这些原型实例创建新的对象。2.4 (单例)模式确保某一个类仅有一个实例,并自行实例化并向整个系统提供这个实例。2.5 (组合)模式将对象组合成树形结构以表示“部分-整体”的层次结构。使得用户对单个对象和组合对象的使用具有一致性。2.6 (外观)模式定义了一个高层接口,这个接口使得这一子系统更加容易使用,为子系统中的一组接口提供一个一致的界面。2.7 ()模式运用共享技术有效地支持大量细粒度的对象。2.8 (责任链)模式使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。

3、2.9 (观察者)模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。2.10 (模板)模式定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。第 3 页(共 12 页)三、选择题(20分,每题2分)3.1 设计模式具有的优点。A. 适应需求变化B. 程序易于理解C. 减少开发过程中的代码开发工作量D. 简化软件系统的设计3.2 下图描述了一种设计模式,该设计模式不可以。A. 动态决定由一组对象中某个对象处理该请求B. 动态指定处理一个请求的对象集合, 并高效率地处理一个请求C. 使多个对象都有机会处理请求,避免请求的发送者和接收者间

4、的耦合关系D. 将对象连成一条链,并沿着该链传递请求3.3 若系统中的某子模块需要为其它模块_B_提供访问不同数据库系统(Oracle、SQL Server、DB2 UDB 等)的功能,这些数据库系统提供的访问接口有一定的差异,但访问过程却都是相同的,例如,先连接数据库,再打开数据库,最后对数据进行查询, 设计模式可抽象出相同的数据库访问过程;A. 外观B. 装饰C. 单件D. 模板方法3.4 系统中的文本显示类(TextView)和图片显示类(PictureView)都继承了组件类(Component),分别显示文本和图片内容,现需要构造带有滚动条、或者带有黑色边框、或者既有滚动条又有黑色边

5、框的文本显示控件和图片显示控件,但希望最多只增加三个类,B设计模式可以实现该目的。A. 外观 B. 装饰C. 单件D. 模板方法3.5 下面的类图表示的是哪个模式?A、抽象工厂模式(Abstract Factory)B、工厂方法模式(Factory Method)C、命令模式(Command)D、责任链模式(Chain of Responsibility)3.6 下面的类图表示的是哪个设计模式?A、代理模式(Proxy) B、装饰模式(Decorator)C、桥接模式(Bridge) D、观察者模式(Observer)3.7 下面的类图表示的是哪个模式?第 5 页(共 12 页)A、代理模式(

6、Proxy) B、外观模式(Facade)C、适配器模式(Adapter) D、桥接模式(Bridge)3.8 下面的类图表明了哪个模式?A、责任链模式(Chain of Responsibility)B、命令模式(Command)C、备忘录模式(Memento)D、工厂方法模式(Factory Method)3.9 下面的类图表示的是哪个设计模式?A、模板方法模式(Template Method) B、命令模式(Command)C、单例模式(Singleton) D、状态模式(State)第 6 页(共 12 页)3.10 下面的类图表明了哪个模式?A、模板方法模式(Template Met

7、hod) B、命令模式(Command)C、单例模式(Singleton) D、状态模式(State)四、读程题(30分,每题15分)4.1 在下面的C+代码中,类SalesTicket能够完成打印票据正文的功能,类HeadDecorator 与FootDecorator 分别完成打印票据的台头和脚注的功能。已知该程序运行后的输出结果如下所示。这是票据的台头!这是票据正文!这是票据的脚注!-这是票据的台头!这是票据的脚注!C+程序代码#include using namespace std;class SalesTicket public:virtual void printTicket()

8、cout 这是票据正文! printTicket();第 7 页(共 12 页);class HeadDecorator : public Decoratorpublic:HeadDecorator(SalesTicket *t): Decorator(t) void printTicket() cout 这是票据的台头! endl;Decorator:printTicket();class FootDecorator :public Decoratorpublic:FootDecorator(SalesTicket *t): Decorator(t) void printTicket() D

9、ecorator:printTicket();cout 这是票_j_据的脚注! endl;void main(void) SalesTicket t;FootDecorator f(&t);HeadDecorator h(&f);h.printTicket();cout - endl;FootDecorator a(NULL);HeadDecorator b(&a);b.printTicket();请根据题目描述、程序和输出,阐述采用该设计模式进行设计的优势?第 8 页(共 12 页)4.2 某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特

10、征。游戏需要模拟的鸭子种类及其特征如下表所示:鸭子种类 发声特征 飞行特征 外观特征灰 鸭(MallardDuck)发出“嘎嘎”声(Quack)用翅膀飞行(FlyWithWings)灰色羽毛红 头 鸭(RedHeadDuck)发出“嘎嘎”声(Quack)用翅膀飞行(FlyWithWings)灰色羽毛、头部红色棉 花 鸭(CottonDuck)不 发声(QuackNoWay)不能飞行(FlyNoWay)白色橡 皮 鸭(RubberDuck)发出橡皮与空气摩擦的声(Squeak)不能飞行(FlyNoWay)黑白橡皮颜色为支持将来能够模拟更多种类鸭子的特征,采用某设计模式设计的类图如下所示:第 9

11、页(共 12 页)其中,Duck 为抽象类,描述了抽象的鸭子,而类RubberDuck、MallardDuck、CottonDuck 和RedHeadDuck 分别描述具体的鸭子种类,方法fly()、quack()和display()分别表示不同种类的鸭子都具有飞行特征、发声特征和外观特征;类FlyBehavior 与QuackBehavior为抽象类,分别用于表示抽象的飞行行为与发声行为;类FlyNoWay与FlyWithWings分别描述不能飞行的行为和用翅膀飞行的行为;类Quack、Squeak与QuackNoWay分别描述发出“嘎嘎”声的行为、发出橡皮与空气摩擦声的行为与不发声的行为。

12、C+代码#includeusing namespace std ;class FlyBehavior public : virtual void fly() = 0;class QuackBehavior public: virtual void quack() = 0;class FlyWithWings:public FlyBehaviorpublic: void fly() cout 使用翅膀飞行! endl; ;class FlyNoWay:public FlyBehaviorpublic: void fly() cout 不能飞行! endl; ;class Quack:public

13、 QuackBehaviorpublic: void quack() cout 发出嘎嘎声! endl;class Squeak:public QuackBehaviorpublic: void quack() cout 发出空气与橡皮摩擦声! endl;class QuackNoWay:public QuackBehaviorpublic: void quack () cout 不能发声! fly(); 第 10 页(共 12 页)void quack() quackBehavior-quack(); ;virtual void display()=0;class RubberDuck: p

14、ublic Duck public:RubberDuck()flyBehavior = new FlyNoWay();quackBehavior = new Squeak();RubberDuck()if(!flyBehavior) delete flyBehavior;if(!quackBehavior) delete quackBehavior;void display() /*此处省略显示橡皮鸭的代码 */ ;/其它代码省略请根据上述类图和代码,阐述采用该设计模式进行设计的优势?第 11 页(共 12 页)五、设计题(20分,每题10分)请根据下面的叙述,选择正确的设计模式,并给出该设计

15、模式的类图。5.1 为实现应用的界面与应用数据的分离,通常定义应用数据的类和应用界面类,它们都可以各自独立地被复用,当然它们也可一起工作。一个表格对象和一个柱状图对象可使用不同的表示形式描述同一个应用数据对象的信息。表格对象和柱状图对象互相并不知道对方的存在,这样使你可以根据需要单独复用表格或柱状图。但是它们表现的似乎互相知道彼此的存在。当用户改变表格中的信息时,柱状图能立即反映这一变化, 反过来也是如此。如下图所示:请根据叙述和上图的描述,选择合适的设计模式,并给出该设计模式的类图。第 12 页(共 12 页)5.2 一般的企业采购审批都是分级的,采购量的不同就需要不同层次的主管人员来审批,如主任可以审批1 万元以下的采购单,副董事长可以申批2.5 万元以下的采购单,董事长可以审批10万元以下的采购单,10 万元以上的采购单就需要开会决定。请根据该描述,选择合适的设计模式并给出其类图。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1