文档库 最新最全的文档下载
当前位置:文档库 › 设计模式测试题(1)

设计模式测试题(1)

设计模式测试题(1)
设计模式测试题(1)

第1章设计模式导论

(1)以下是模式的基本要素的是。

A)名称B)意图

C)解决方案D)参与者和协作者

(2)常用的描述设计模式的格式有。

A)意图

B)动机

C)适用性

D)结构

(3)以下哪些问题通过应用设计模式能够解决。

A)指定对象的接口

B)排除软件BUG

C)确定软件的功能都正确实现

D)设计应支持变化

(4)面向对象系统中功能复用的最常用技术是。

A)类继承

B)对象组合

C)使用抽象类

D)使用实现类

(5)常用的基本设计模式可分为。

A)创建型、结构型和行为型

B)对象型、结构型和行为型

C)过程型、结构型和行为型

D)抽象型、接口型和实现型

第1章试题答案:

(1) ABCD (2) ABCD (3) AD (4)AB (5) A

第2章创建型模式

(1)以下关于创建型模式说法正确的是。

A)创建型模式关注的是对象的创建

B)创建型模式关注的是功能的实现

C)创建型模式关注的是组织类和对象的常用方法

D)创建型模式关注的是对象间的协作

(2)以下属于创建型模式的是。

A)抽象工厂(Abstract Factory)模式

B)合成(Composite)模式

C)单例(Singleton)模式

D)桥接(Bridge)模式

(3)以下哪个模式是利用一个对象,快速地生成一批对象。

A)抽象工厂(Abstract Factory)模式

B)合成(Composite)模式

C)原型(Prototype)模式

D)桥接(Bridge)模式

(4)Singleton模式适用与。

A)当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。

B)当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。

C)当构造过程必须允许被构造的对象有不同的表示时;

D)生成一批对象

(5)Factory Method模式和Prototype模式之间的区别可以理解为。

A)Factory Method模式是重新创建一个对象。

B)Prototype模式是重新创建一个对象。

C)Prototype模式是利用现有的对象进行克隆。

D)Factory Method模式是利用现有的对象进行克隆。

第2章试题答案:

(1) A (2) AC (3) C (4)AB (5) AC

第3章结构型模式

(1)以下关于结构型模式说法正确的是。

A)结构型模式可以在不破坏类封装性的基础上,实现新的功能。

B)结构型模式主要用于创建一组对象。

C)结构型模式可以创建一组类的统一访问接口

D)结构型模式可以在不破坏类封装性的基础上,使得类可以同不曾估计到的系统进行交互。

(2)以下属于结构型模式的是。

A)代理(Proxy)模式

B)合成(Composite)模式

C)命令(Command)模式

D)观察者(Observer)模式

(3)在不破坏类封装性的基础上,使得类可以同不曾估计到的系统进行交互。主要体现在。

A)适配器(Adapte)模式

B)合成(Composite)模式

C)原型(Prototype)模式

D)桥接(Bridge)模式

(4)结构型模式中最体现扩展性的几种模式是。

A)适配器(Adapte)模式

B)合成(Composite)模式

C)装饰(Decorator)模式

D)桥接(Bridge)模式

(5)如果有一个2M的文本(英文字母),为了对其中的字母进行分类和计数,若为文本中的每个字母都定义一个对象显然不合实际,对与该问题最好可使用的模式是。

A)装饰(Decorator)模式

B)享元(Flyweight)模式

C)合成(Composite)模式

D)命令(Command)模式

第3章试题答案:

(1) ACD (2) AB (3) AD (4)BC (5) B

第4章行为模式

(1)行为类模式使用在类间分派行为。

A)接口

B)继承机制

C)对象组合

D)委托

(2)以下属于行为对象模式的是。

A)模板(Template Method)模式

B)迭代器(Iterator)模式

C)命令(Command)模式

D)观察者(Observer)模式

(3)封装分布于多个类之间的行为的模式是。

A)观察者(Observer)模式

B)迭代器(Iterator)模式

C)访问者(Visitor)模式

D)策略(Strategy)模式

(4)Observer(观察者)模式适用于。

A)当一个抽象模型存在两个方面,其中一个方面依赖于另一方面,将这二者封装在独立的对象中以使它们可以各自独立地改变和复用。

B)当对一个对象的改变需要同时改变其它对象,而不知道具体有多少对象有待改变时。

C)当一个对象必须通知其它对象,而它又不能假定其它对象是谁。也就是说你不希望这些对象是紧密耦合的。

D)一个对象结构包含很多类对象,它们有不同的接口,而想对这些对象实施一些依赖于其具体类的操作。

(5)Java的异常处理机制可理解为哪一种行为模式。

A)观察者(Observer)模式

B)迭代器(Iterator)模式

C)职责链(Chain of Responsibility)模式

D)策略(Strategy)模式

第4章试题答案:

(1) B (2) BCD (3) C (4)ABC (5) C

设计模式试卷

设计模式期中考试试题 一:单项选择(共20道,每道2分) 1、设计模式一般用来解决什么样的问题( ) A.同一问题的不同表相B不同问题的同一表相 C.不同问题的不同表相 D.以上都不是 2、下列属于面向对象基本原则的是( ) A.继承 B.封装 C.里氏代换D都不是 3、Open-Close原则的含义是一个软件实体( ) A.应当对扩展开放,对修改关闭. B.应当对修改开放,对扩展关闭 C.应当对继承开放,对修改关闭 D.以上都不对 4、当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用()模式。 A.创建型 B.结构型C行为型D.以上都可以 5、要依赖于抽象,不要依赖于具体。即针对接口编程,不要针对实现编程,是( )的表述 A.开-闭原则 B.接口隔离原则 C.里氏代换原则 D.依赖倒转原则 6、设计模式的两大主题是( ) A.系统的维护与开发 B 对象组合与类的继承 C.系统架构与系统开发 D.系统复用与系统扩展 7、“不要和陌生人说话” 是( )原则的通俗表述 A.接口隔离 B.里氏代换 C.依赖倒转 D.迪米特:一个对象应对其他对象尽可能少的了解 8、构造者的的退化模式是通过合并()角色完成退化的。 A.抽象产品B产品C创建者D使用者 9、以下关于简单工厂模式叙述错误的是() A 它属于GoF23种设计模式 B 它是最简单的设计模式之一 C 它是学习其他创建型模式的基础 D 它只需要记住一个简单的参数即可获得所需对象的实例 E 它类中的方法通常为静态方法 F 它返回的类都有一个公共的父类和公共的方法 10、对象适配器模式是()原则的典型应用。 A.合成聚合复用原则 B.里式代换原则 C.依赖倒转原则 D.迪米特法则 D.以上表述全部错误。 11.对于依赖倒转的表述错误的是() A.依赖于抽象而不依赖于具体,也就是针对接口编程。 B.依赖倒转的接口并非语法意义上的接口,而是,一个类对其他对象进行调用时,所知道的方法集合。 C.从选项B的角度论述,一个对象可以有多个接口。 D.实现了同一接口的对象,可以在运行期间,顺利地进行替换。而且不必知道所示用的对象是那个实现类的实例。 E.此题没有正确答案。 12. 现有5个产品族,分布于3各不同的产品等级结构,只要指明一个产品所处的产品族以及它所在的等级结构,就可以唯一地确认这个产品。那么使用抽象工厂方法模式只需要提供

设计模式笔试题

建造者模式 题目:程序设计 生产电脑只需要CUP、内存和显卡,现在需要生产宏基和戴尔两个品牌的电脑。提示:生产电脑的过程中将产品的结构和产品的零件的建造过程对客户是隐藏起来,把对建造过程进行指挥的责任和具体生产零件商的责任分割开来,达到责任划分和封装的目的。 参考解答:【个人观点】 本题可使用建造者模式,参考类图如下所示: 参考代码如下: /** * -----------------------------------------

* @描述产品构建指导者 * ----------------------------------------- */ public class Director { private Builder builder; public Director(Builder builder){ this.builder = builder; } public void construct(){ builder.buildCPU(); builder.buildMemory(); builder.buildDisplayCard(); } } /** * ----------------------------------------- * @描述抽象建造者 * @作者 weiqj * @日期 2014-7-2 * ----------------------------------------- */ public interface Builder { //CUP

public void buildCPU(); //内存 public void buildMemory(); //显卡 public void buildDisplayCard (); //最终产品 public Product getFinalResult(); } /** * ----------------------------------------- * @描述抽象产品 * @作者 weiqj * @日期 2014-7-2 * ----------------------------------------- */ public abstract class Product { protected List parts = new ArrayList(); //添加部件 public void add(String part){ parts.add(part); }

2019年上半年软件设计师上午试题及答案

2019年上半年软件设计师上午试题及答案 1.计算机执行指令的过程中,需要由()产生每条指令的操作信号并将信号送往相应的部件进行处理,以完成指定的操作。 A.CPU的控制器 B.CPU的运算器 C.DMA控制器 D.Cache控制器 2.DMA控制方式是在()之间直接建立数据通路进行数据的交换处理。 A.CPU与主存 B.CPU与外设 C.主存与外设 D.外设与外设 3.CPU访问存储器时,被访问数据一般聚集在一个较小的连续存储区域中。若一个存储单元已被访问,则其邻近的存储单元有可能还要被访问,该特性被称为() A.数据局部性 B.指令局部性 C.空间局部性 D.时间局部性 4.某系统由3个部件构成,每个部件的千小时可靠度都为R,该系统的千小时可靠度为(1-(1-R)2)R,则该系统的构成方式是()。 A.3个部件串联

B.3个部件并联 C.前两个部件并联后与第三个部件串联 D.第一个部件与后两个部件并联构成的子系统串联 5.在()校验方法中,采用模2运算来构造校验位。 A.水平奇偶 B.垂直奇偶 C.海明码 D.循环冗余 6.以下关于RISC (精简指令系统计算机)技术的叙述中,错误的是()。 A.指令长度固定、指令种类尽量少 B.指令功能强大、寻址方式复杂多样 C.增加寄存器数目以减少访存次数 D.用硬布线电路实现指令解码,快速完成指令译码 7.()防火墙是内部网和外部网的隔离点,它可对应用层的通信数据流进行监控和过滤。 A.包过滤 B.应用级网关 C.数据库 D.WEB 8.下述协议中与安全电子邮箱服务无关的是()。 A.SSL

B.HTTPS C.MIME D.PGP 9-10.用户A和B要进行安全通信,通信过程需确认双方身份和消息不可否认。A 和B通信时可使用()来对用户的身份进行认证;使用()确保消息不可否认。 A.数字证书 B.消息加密 C.用户私钥 D.数字签名 A.数字证书 B.消息加密 C.用户私钥 D.数字签名 11.震网(Stuxnet)病毒是一种破坏工业基础设施的恶意代码,利用系统漏洞攻击工业控制系统,是一种危害性极大的()。 A.引导区病毒 B.宏病毒 C.木马病毒 D.蠕虫病毒 12.刘某完全利用任职单位的实验材料、实验室和不对外公开的技术资料完成了一项发明。以下关于该发明的权利归属的叙述中,正确的是()。

软件设计模式试题集 含答案

设计模式试题 一.选择 1. 设计模式具有的优点()。 A.适应需求变化 B.程序易于理解 C.减少开发过程中的代码开发工作量 D.简化软件系统的设计 2. 设计模式一般用来解决什么样的问题( )。 A.同一问题的不同表相 B 不同问题的同一表相 C.不同问题的不同表相 D.以上都不是 3. 设计模式的两大主题是( )。 A.系统的维护与开发 B.对象组合与类的继承 C.系统架构与系统开发 D.系统复用与系统扩展 4. 以下哪些问题通过应用设计模式不能够解决。() A)指定对象的接口B)针对接口编程 C)确定软件的功能都正确实现D)设计应支持变化 二.填空 1. 模式的基本要素包括名称、意图、问题、解决方案、参与者和协作者、(效果)、实现、GoF 参考。 2. 设计模式基本原则包括:开闭原则,(从场景进行设计的原则),包容变化原则。 3. 设计模式是一个(抽象)的方案,它可以解决一类问题。 4. 1. 在设计模式群体中,效果是指(原因和结果)。三. 判断 1. 适配器模式属于创建型模式。错 2. 在设计模式中,“效果”只是指“原因和结果”。对 3. 设计模式使代码编制不能真正工程化。错 4. 设计模式的两大主题是系统复用与系统扩展。对四. 名词解释 1. 设计模式 是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 2. 模板 模式定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。 3. 模式 就是解决某一类问题的方法论。把解决某类问题的方法总结归纳到理论高度,那就是模式。 4. 内聚度 模块内部各成分彼此结合的紧密程度。五.简答 题 1. 什么是设计模式?设计模式的目标是什么?设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码 设计经验的总结。使用设计模式是为了可 重用代码、让代码更容易被他人理解、保证代码可靠性。 2. 设计模式的基本要素有哪些? 名称,意图,问题,解决方案,参与者和协作者,效果,实现,GOF 参考。 3. 设计模式中一般都遵循的原则有什么? 开-闭原则,根据场景进行设计原则,优先组合原则,包容变化原则。 4. 四人团针对“创建优秀面向对象设计”建议了哪些策略? 针对接口编程,优先使用对象组合而不是类继承,找到并封装变化点。 第6 章 facade(外观)模式 一.选择 1. 外观模式的作用是()。A.当不能采用生成子类的方法进行扩充时,动态地给一个对象添加一些 额外的功能。B.为了系统中的一组功能调用提供一个一致的接口,这个接口使得这一子系统更 加容易使用。

吉林大学设计模式期末考试试题答案整理

设计模式分为三种类型,共23种。 创建型模式:单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式。 结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。 行为型模式:模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式(Interpreter模式)、状态模式、策略模式、职责链模式(责任链模式)、访问者模式。 工厂模式(Factory) 意图 定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。 适用性 ●当一个类不知道它所必须创建的对象的类的时候。 ●当一个类希望由它的子类来指定它所创建的对象的时候。 ●当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一 信息局部化的时候。 抽象工厂模式(Abstract Factory) 意图 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 适用性 ●一个系统要独立于它的产品的创建、组合和表示时。 ●一个系统要由多个产品系列中的一个来配置时。 ●当你要强调一系列相关的产品对象的设计以便进行联合使用时。 ●当你提供一个产品类库,而只想显示它们的接口而不是实现时。 建造者模式Builder 意图 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 适用性

●当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。 ●当构造过程必须允许被构造的对象有不同的表示时。 原型模式Prototype 意图 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 适用性 ●当要实例化的类是在运行时刻指定时,例如,通过动态装载;或者 ●为了避免创建一个与产品类层次平行的工厂类层次时;或者 ●当一个类的实例只能有几个不同状态组合中的一种时。建立相应数目的原型并克隆它们可能比每次用 合适的状态手工实例化该类更方便一些。 单例模式Singleton 意图 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 适用性 ●当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。 ●当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例 时。 适配器模式Adapter 意图 将一个类的接口转换成另外一个客户希望的接口。Adapter 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 适用性 ●你想使用一个已经存在的类,而它的接口不符合你的需求。 ●你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼 容的类)协同工作。 ●(仅适用于对象Adapter)你想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配 它们的接口。对象适配器可以适配它的父类接口。

设计模式课后习题

建造者模式 课后第一题: 产品类: public class GamePerson { private String face; private String gender; private String cloth; public String getFace() { return face; } public void setFace(String face) { this.face = face; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public String getCloth() { return cloth; } public void setCloth(String cloth) { this.cloth = cloth; } } 抽象建造类: public abstract class PersonCreate { protected GamePerson person=new GamePerson(); public abstract void createFace(); public abstract void createGender(); public abstract void createCloth(); public GamePerson getPerson(){ return person; } }

具体建造者类: public class PersonType1 extends PersonCreate { public void createFace() { person.setFace("瓜子脸"); } public void createGender() { person.setGender("美女"); } public void createCloth() { person.setCloth("洛丽塔"); } } 具体建造类: public class PersonType2 extends PersonCreate { public void createFace() { person.setFace("国字脸"); } public void createGender() { person.setGender("帅哥"); } public void createCloth() { person.setCloth("西装革履"); } } 指挥者类: public class GamePlayer { private PersonCreate pc; public void choseType(PersonCreate pc){ this.pc=pc; } public GamePerson create(){ pc.createCloth(); pc.createFace(); pc.createGender(); return pc.getPerson(); } } 测试类: public class Test { public static void main(String[] args) { PersonCreate pc=new PersonType1();

软件设计模式试题集58887

第5章设计模式 一.选择 1. 设计模式具有的优点()。 A.适应需求变化 B.程序易于理解 C.减少开发过程中的代码开发工作量 D.简化软件系统的设计 2. 设计模式一般用来解决什么样的问题( )。 A.同一问题的不同表相B不同问题的同一表相 C.不同问题的不同表相 D.以上都不是 3. 设计模式的两大主题是( )。 A.系统的维护与开发 B 对象组合与类的继承 C.系统架构与系统开发 D.系统复用与系统扩展 4. 以下哪些问题通过应用设计模式不能够解决。() A)指定对象的接口B)针对接口编程 C)确定软件的功能都正确实现D)设计应支持变化 解答: 1. A 2. A 3. D 4. C 二.填空 1. 模式的基本要素包括名称、意图、问题、解决方案、参与者和协作者、()、实现、G oF参考。 2. 设计模式基本原则包括:开闭原则,(),包容变化原则。 3. 设计模式是一个( )的方案,它可以解决一类问题。 4. 1. 在设计模式群体中,效果是指()。 解答: 1. 效果 2. 从场景进行设计的原则

3. 抽象 4. 原因和结果 三.判断 1. 适配器模式属于创建型模式。 2. 在设计模式中,“效果”只是指“原因和结果”。 3. 设计模式使代码编制不能真正工程化。 4. 设计模式的两大主题是系统复用与系统扩展。 解答: 1. 错 2. 对 3. 错 4. 对 四.名词解释 1. 设计模式 2. 模板 3. 模式 4. 内聚度 解答: 1. 是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性 2. 模式定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。 3. 就是解决某一类问题的方法论。把解决某类问题的方法总结归纳到理论高度,那就是模式。 4. 五.简答题 1. 什么是设计模式?设计模式的目标是什么?

最新java设计模式考试题资料

1、设计模式一般用来解决什么样的问题( a) A.同一问题的不同表相 B不同问题的同一表相 C.不同问题的不同表相 D.以上都不是 2、下列属于面向对象基本原则的是( c ) A.继承 B.封装 C.里氏代换 D都不是 3、Open-Close原则的含义是一个软件实体( a ) A.应当对扩展开放,对修改关闭. B.应当对修改开放,对扩展关闭 C.应当对继承开放,对修改关闭 D.以上都不对 4、当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用( a )模式。 A.创建型 B.结构型 C行为型 D.以上都可以 5、要依赖于抽象,不要依赖于具体。即针对接口编程,不要针对实现编程,是( d )的表述 A.开-闭原则 B.接口隔离原则 C.里氏代换原则 D.依赖倒转原则 6、依据设计模式思想,程序开发中应优先使用的是( a )关系实现复用。 A, 委派 B.继承 C创建 D.以上都不对 复用方式:继承和组合聚合(组合委派) 7、设计模式的两大主题是( d ) A.系统的维护与开发 B 对象组合与类的继承 C.系统架构与系统开发 D.系统复用与系统扩展 8、单子模式中,两个基本要点( a b )和单子类自己提供单例 A .构造函数私有 B.唯一实例 C.静态工厂方法 D.以上都不对 9、下列模式中,属于行为模式的是( b ) A.工厂模式 B观察者 C适配器以上都是 10、“不要和陌生人说话” 是( d )原则的通俗表述 A.接口隔离 B.里氏代换 C.依赖倒转 D.迪米特:一个对象应对其他对象尽可能少的了解 11、构造者的的退化模式是通过合并( c )角色完成退化的。 A.抽象产品 B产品 C创建者 D使用者

Java中常见设计模式面试题

Java中常见设计模式面试题 一、设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。 1.请列举出在JDK中几个常用的设计模式? 单例模式(Singleton pattern)用于Runtime,Calendar和其他的一些类中。工厂模式(Factory pattern)被用于各种不可变的类如Boolean,像Boolean.valueOf,观察者模式(Observer pattern)被用于 Swing 和很多的事件监听中。装饰器设计模式(Decorator design pattern)被用于多个 Java IO 类中。 2.什么是设计模式?你是否在你的代码里面使用过任何设计模式? 设计模式是世界上各种各样程序员用来解决特定设计问题的尝试和测试的方法。设计模式是代码可用性的延伸 3.Java 中什么叫单例设计模式?请用Java 写出线程安全的单例模式 单例模式重点在于在整个系统上共享一些创建时较耗资源的对象。整个应用中只维护一个特定类实例,它被所有组件共同使用。https://www.wendangku.net/doc/0013837186.html,ng.Runtime是单例模式的经典例子。从 Java 5 开始你可以使用枚举(enum)来实现线程安全的单例。 4.在 Java 中,什么叫观察者设计模式(observer design pattern)?

软件设计模式(JAVA)习题答案

软件设计模式(Java版)习题 第1章软件设计模式基础 1.1 软件设计模式概述 1.2 UML中的类图 1.3 面向对象的设计原则 一、名词解释 1.一个软件实体应当对扩展开放,对修改关闭,即在不修改源代码的基础上扩展 一个系统的行为。 2.一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。 3.在软件中如果能够使用基类对象,那么一定能够使用其子类对象。 4.是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结, 使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 二、单选择题 1.( A ) 2.( A ) 3. ( A ) 4. ( D ) 5. ( D ) 6.( A ) 7. ( D ) 8.( D ) 9.( D ) 10.( E ) 11.( C ) 12.( C ) 13. ( A ) 三、多选择题 1.( A、B、C、D ) 2. ( A、B ) 3.( A、D ) 4.( A、B、C、D ) 四、填空题 1.依赖倒转、迪米特法则、单一职责 2.模式名字、目的、问题、解决方案、效果、实例代码 3.超类、子类 4.开闭 5.用户 6.依赖倒转 7.组合/聚合 8.结构型、行为型 9.依赖倒转 10.开闭 11.需求收集是否正确、体系结构的构建是否合理、测试是否完全 12.人与人之间的交流 13.接口 14.名称、目的、解决方案 15.对象组合、类继承

16.对象组合 17.对象组合、类继承 18.抽象类的指针 五、简答题 1.答:设计模式按类型分为以下三类: 1)创建型设计模式:以灵活的方式创建对象集合,用于管理对象的创建。 2)结构型设计模式:将己有的代码集成到新的面向对象设计中,用于处理类或对象的组合。 3)行为型设计模式:用于描述对类或对象怎样交互和怎样分配职责。 2.答:设计模式的主要优点如下: 1)设计模式融合了众多专家的经验,并以一种标准的形式供广大开发人员所用,它提供了一套通用的设计词汇和一种通用的语言以方便开发人员之间沟通和交 流,使得设计方案更加通俗易懂。 2)设计模式使人们可以更加简单方便地复用成功的设计和体系结构,将已证实的技术表述成设计模式也会使新系统开发者更加容易理解其设计思路。设计模式使得重用成功的设计更加容易,并避免那些导致不可重用的设计方案。 3)设计模式使得设计方案更加灵活,且易于修改。 4)设计模式的使用将提高软件系统的开发效率和软件质量,且在一定程度上节约设计成本。 5)设计模式有助于初学者更深入地理解面向对象思想,一方面可以帮助初学者更加方便地阅读和学习现有类库与其他系统中的源代码,另一方面还可以提高软件的设计水平和代码质量。 3.答:设计模式一般有如下几个基本要素:模式名称、问题、目的、解决方案、效 果、实例代码和相关设计模式,其中的关键元素包括模式名称、问题、解决方案和效果。 4.答:正确使用设计模式具有以下优点: ⑴可以提高程序员的思维能力、编程能力和设计能力。 ⑵使程序设计更加标准化、代码编制更加工程化,使软件开发效率大大提高,从 而缩短软件的开发周期。 ⑶使设计的代码可重用性高、可读性强、可靠性高、灵活性好、可维护性强。 5.答:根据类与类之间的耦合度从弱到强排列,UML中的类图有以下几种关系:依赖关 系、关联关系、聚合关系、组合关系、泛化关系和实现关系。其中泛化和实现的耦合度相等,它们是最强的。

软件设计模式复习题

软件设计模式复习题 1、熟悉每个设计模式的定义、模式UML图解、模式使用情形以及模式优缺点。 2、设计模式的两大主题是什么? 3、设计模式分成几大类?每大类各包含哪些模式? 4、为什么要使用设计模式?使用设计模式有哪些好处? 5、比较抽象工厂模式和工厂方法模式相似性和差异性。什么情况下使用抽象工厂模式?什 么情形下使用工厂方法模式? 6、简述原型模式中浅层克隆和深度克隆的区别?分别给出代码说明。 7、模板方法和普通的实现类继承抽象类方式有何区别? 8、是比较和分析适配器模式和桥接模式之间的共性和差异性。 9、请用组合模式实现学校人事管理模式。 10、综合应用装饰模式、命令模式和状态模式实现工具条命令按钮鼠标进入时高亮显示 状态以及鼠标单击按钮后呈现凹陷状态,表明当前按钮为选中状态。 11、请阐述享元模式是如何节省系统内存的?试举例分析使用享元模式前后的内存节 约之比。 12、使用解析器模式实现对学生成绩表的查询输入语句进行解析并执行查询,成绩表结 14、试比较和分析中介者模式和观察者模式之间的相似性和差异性?两者是否能够相 互转化? 15、模板方法和普通的抽象类继承有什么区别? 16、使用访问者模式对12题中的学生信息进行报到。 1、熟悉每个设计模式的定义、模式UML图解、模式使用情形以及模式优缺点。(见书)答:单件模式: ○1单例模式:class Singleton{private static Singleton instance; private Singleton(){} public static Singleton GetInstance(){if (instance == null) { instance = new Singleton();} return instance; } 客户端代码:class Program{static void Main(string[] args) { Singleton s1 = Singleton.GetInstance(); Singleton s2 = Singleton.GetInstance(); if (s1 = = s2) {Console.WriteLine("Objects are the same instance");} Console.Read();}} ○2多线程时的单例(Lock是确保当一个线程位于代码的临界区时,另一个线程不进入临界区。如果其他线程试图进入锁定的代码,则它将一直等待(即被阻止),直到该对象被释放)class Singleton{private static Singleton instance; private static readonly object syncRoot = new object(); private Singleton(){} public static Singleton GetInstance(){lock (syncRoot) {

Java开发工程师笔试题(带答案)

Java开发工程师笔试试题 (请不要在试题上留任何痕迹,所有答案均写在答题纸上) 一.编程题(共26分) 1.任意写出一种排序算法。(6分) public void sort(int [] array){ //代码区 } 2.求1+2+3+..n(不能使用乘除法、for 、while 、if 、else 、switch 、case 等关 键字以及条件判断语句)(8分) public int sum(int n){ //代码区 return 0; } 3.完成下面方法,输入一个整数,输出如下指定样式图案。(12分) 输入:3, 输出: 1*2*3 7*8*9 4*5*6

输入:4 输出: 1*2*3*4 9*10*11*12 13*14*15*16 5*6*7*8 public void drawNumPic(int n){ //代码区 } 二.选择题(定项选择每题3分,不定项选择每题4分,共63分) 1.在基本JAVA类型中,如果不明确指定,整数型的默认是__类型,带小数的默认是__类型?( B ) A.int float B.int double C.long float D.long double 2.只有实现了__接口的类,其对象才能序列化( A ) A.Serializable B.Cloneable https://www.wendangku.net/doc/0013837186.html,parable

D.Writeable 3.代码System. out. println(10 % 3 * 2);将打印出?( B ) A.1 B.2 C.4 D.6 4.以下程序运行的结果为( A ) public class Example extends Thread{ @Override public void run(){ try{ Thread.sleep(1000); }catch (InterruptedException e){ e.printStackTrace(); } System.out.print("run"); } public static void main(String[] args){ Example example=new Example(); example.run(); System.out.print("main"); } }

吉林大学2012级软件设计模式试题

2014-2015学年第1学期 2012级《软件设计模式》考试试题(开卷) 考试时间:2014年 班级学号姓名 ?本试卷满分100分; ?请将答案写在答题纸上,写明题号,不必抄题,字迹工整、清晰; ?试题中使用C++语言作为描述语言,答题时可以使用C++或Java或C#程序设计语言中 的任意一种作为描述语言,但整个卷面只能使用其中一种,不得混合使用; ?请在答题纸和试题纸上都写上你的班级,学号和姓名,交卷时请将试题纸、答题纸和草纸 一并交上来。 一、单选题(共20分,每题2分) 1.类设计中,“变化是绝对的,稳定是相对的”,下列哪个不属于这句话中“变化”的范畴? (A) 改变函数参数的类型(B) 增加新的数据成员 (C) 改变编程语言(D) 改变对象交互的过程和顺序 2.Open-Close原则的含义是一个软件实体: (A) 应当对扩展开放,对修改关闭 (B) 应当对修改开放,对扩展关闭 (C) 应当对继承开放,对修改关闭 (D) 以上都不对 3.下列关于继承表述错误的是: (A) 继承是一种通过扩展一个已有类的实现,从而获得新功能的复用方法 (B) 泛化类(超类)可以显式地捕获那些公共的属性和方法。特殊类(子类)则通过附加 属性和方法来进行实现的扩展 (C) 破坏了封装性,因为这会将父类的实现细节暴露给子类 (D) 继承本质上是“白盒复用”,对父类的修改,不会影响到子类 4.下列关于对象组合/聚合,说法错误的是: (A) 容器类能通过被包含对象的接口来对其进行访问 (B) 属于黑盒复用,封装性好,因为被包含对象的内部细节对外是不可见 (C) 可以在运行时将被包含对象改变成同类型对象,从而改变容器类的行为效果,但没有 改变容器类的接口 (D) 比继承关系更加灵活,代价是相比继承关系,增强了类间的耦合度 5.用于分离接口和具体实现,使得接口和实现可独立变化的是: (A)适配器模式(B) 桥接模式(C) 命令模式(D)模板方法模式 6.体现“集中管理多个对象间的交互过程和顺序”的是: (A)生成器模式(B) 门面模式(C) 策略模式(D)中介者模式

东北大学《软件设计模式》期末考试必备真题集(含答案)93

东北大学继续教育学院 软件设计模式复习题 一:单选题 1.在c#程序中,入口函数的正确声明为:B A. static int main(){…..} B. static void Main(){……} void main(){……} Main(){……} 2.在C#中,表示一个字符串的变量应使用以下哪条语句定义?B A. CString str; B. string str; C. Dim str as string D. char * str; 3.结构化程序设计的3种结构是:D A. 顺序结构、if结构、for结构

B. if结构、if…else结构、else if结构 C. while结构、do…while结构、foreach结构 D. 顺序结构、分支结构、循环结构 4.能正确表示逻辑关系“a>=10 或a<=0”的C#语言表达式是____。D A. a>=10 or a<=0 B. a>=10|a<=0 C. a>=10&&a<=0 D. a>=10||a<=0 5.在类的外部可以被访问的成员是:A A. public成员 B. private成员 C. protected成员 D. protected internal成员 6.在定义类时,如果希望类的某个方法能够在派生类中进一步进行改进,以处理不同的派生类的需要,则应将该方法声明成_________。C A. sealed 方法 B. public 方法 C. visual 方法 D. override 方法 7.关于结构类型,下列说法哪些是正确的?A A. 结构是值类型 B. 结构中不允许定义带参数的实例构造函数; C. 结构中不允许定义析构函数 D. 结构中可以定义成员方法,但是方法内不能使用this 指针 8.下面是几条动态初始化二维数组的语句,指出其中正确的:D A. int arr5[][]=new int[4,5]; B. int[][] arr6 = new int[4, 5]; C. int arr7[,]=new int[4,5]; D. int[,] arr8=new int[4,5]; 9.下面有关析构函数的说法中,不正确的是:D

设计模式总复习题

总复习题 复习参考资料: 1.GoF 设计模式 2.设计模式解析 3.易学设计模式 4.大话设计模式 5.深入浅出设计模式 以参考资料为主,模拟试题1-5中有些题答案在一些附加资料中 模拟试题1 一、选择题(分值20) 1. 设计模式一般用来解决什么样的问题( ) A.同一问题的不同表相 B不同问题的同一表相 C.不同问题的不同表相 D.以上都不是 2. 下列属于面向对象基本原则的是( ) A.继承 B.封装 C.里氏代换 D都不是 3. Open-Close原则的含义是一个软件实体( ) A.应当对扩展开放,对修改关闭. B.应当对修改开放,对扩展关闭 C.应当对继承开放,对修改关闭 D.以上都不对 4. 当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用()模式。 A.创建型 B.结构型 C行为型 D.以上都可以 5. 要依赖于抽象,不要依赖于具体。即针对接口编程,不要针对实现编程,是( )的表述 A. 开-闭原则 B. 接口隔离原则 C. 里氏代换原则 D. 依赖倒转原则 6. 依据设计模式思想,程序开发中应优先使用的是( )关系实现复用。 A, 委派 B.继承 C创建 D.以上都不对 7. 设计模式的两大主题是( ) A.系统的维护与开发 B 对象组合与类的继承 C.系统架构与系统开发 D.系统复用与系统扩展 8. 单体模式中,两个基本要点( )和单体类自己提供单例 A .构造函数私有 B.唯一实例 C.静态工厂方法 D.以上都不对 9. 下列模式中,属于行为模式的是( ) A.工厂模式 B观察者 C适配器以上都是 10. “不要和陌生人说话”是( )原则的通俗表述

设计模式考试复习题含答案

一、1. 设计模式一般用来解决什么样的问题: A.同一问题的不同表相 2. 下列属于面向对象基本原则的是: C.里氏代换 3. Open-Close原则的含义是一个软件实体:A.应当对扩展开放,对修改关闭. 4. 当我们想创建一个具体的对象而又不希望指定具体的类时,使用(A)模式。A.创建型 5. 要依赖于抽象不要依赖于具体。即针对接口编程不要针对实现编程:(D)依赖倒转原则 6. 依据设计模式思想,程序开发中应优先使用的是( A )关系实现复用。A, 委派 7. 设计模式的两大主题是( D ) D.系统复用与系统扩展 8. 单体模式中,两个基本要点(AB)和单体类自己提供单例A .构造函数私有 B.唯一实例 9. 下列模式中,属于行为模式的是( B ) B观察者 10. “不要和陌生人说话”是( D )原则的通俗表述 D.迪米特 1. 软件体系结构是指一个系统的有目的的设计和规划,这个设计规划既不描述活动,也不描述系统怎样开发,它只描述系统的组成元素及其相互的交互协作。 2.一个UML模型只描述了一个系统要做什么,它并没告诉我们系统是怎么做。 3.接口是可以在整个模型中反复使用的一组行为,是一个没有属性而只有方法的类。 4.多重性指的是,某个类有多个对象可以和另一个类的一对象关联。 5.当一个类的对象可以充当多种角色时,自身关联就可能发生。 6.在泛化关系中,子类可以替代父类。后前者出现的可以相同地方。反过来却不成立。 7.最通常的依赖关系是一个类操作的形构中用到了另一个类的定义。 8.组成是强类型的聚集,因为聚集中的每个部分体只能属于一个整体。 9.实现的符号和继承的符号有相似之处,两者的唯一差别是实现关系用虚线表示,继承关系用实线表示。 10. 设计模式中应优先使用对象组合而不是类继承。 1.适配器模式属于创建型模式结构型( F ) 2.在设计模式中,“效果”只是指“原因和结果”( T ) 3.设计模式使代码编制不能真正工程化( T ) 4.面向对象语言编程中的异常处理,可以理解为责任链模式(T ) 5.反模式就是反对在软件开发过程中使用设计模式分析:反模式用来解决问题的带有共性的不良方法(F ) 1.什么是设计模式?设计模式目标是什么? 答:设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解,保证代码可靠性。 2.设计模式中一般都遵循的原则有什么? 答:开闭原则、根据场景进行设计原则、优先组合原则、包容变化原则 3.“Gang of Four”针对“创建优秀面向对象设计”建议了哪些策略? 答:针对接口编程、优先使用对象组合而不是类继承,找到并封装变化点。 4.面向对象系统中功能复用的两种最常用技术是什么? 答:类继承和对象组合,类继承允许你根据其他类的实现来定义一个类的实现。父类的部细节对子类可见。类继承是在编译时刻静态定义的,且可直接使用,类继承可以较方便地改变被复用的实现。对象组合是类继承之外的另一种复用选择。新的更复杂的功能可以通过组装或组合对象来获得。对象组合要求被组合的对象具有良好定义的接口。 5.只根据抽象类中定义的接口来操纵对象有什么好处? 答:1) 客户无须知道他们使用对象的特定类型,只须对象有客户所期望的接口。 2) 客户无须知道他们使用的对象是用什么类来实现的,他们只须知道定义接口的抽象类。 五、应用题(分值15) 公司架构:经理、工程师、技师和后勤人员都是公司的雇员,经理管理工程师、技师和后勤人员。高层经理领导较低级别的经理。典型层次图如下:可以使用哪种设计模式实现公司的层级关系?并说明为什么? 组合模式,第一,其公司关系架构为树形结构;第二,其表示了部分-整体关系(自己扩展)

2019年上半年软件设计师上午试题及答案

2019 年上半年软件设计师上午试题及答案 1.计算机执行指令的过程中,需要由()产生每条指令的操作信号并将信号送往相应的部件进行处理,以完成指定的操作。 A.CPU的控制器 B.CPU的运算器 C.DMA控制器 D.Cache控制器 2.DMA控制方式是在()之间直接建立数据通路进行数据的交换处理。 A.CPU与主存 B.CPU与外设 C.主存与外设 D.外设与外设 3.CPU访问存储器时,被访问数据一般聚集在一个较小的连续存储区域中。若一个存储单元已被访问,则其邻近的存储单元有可能还要被访问,该特性被称为() A.数据局部性 B.指令局部性 C.空间局部性 D.时间局部性 4.某系统由 3 个部件构成,每个部件的千小时可靠度都为R,该系统的千小时可靠度为(1- (1-R)2)R,则该系统的构成方式是()。 A. 3 个部件串联

B. 3 个部件并联 C.前两个部件并联后与第三个部件串联 D.第一个部件与后两个部件并联构成的子系统串联 5.在()校验方法中, 采用模 2 运算来构造校验位。 A.水平奇偶 B.垂直奇偶 C.海明码 D.循环冗余 6.以下关于RISC (精简指令系统计算机)技术的叙述中,错误的是()。 A.指令长度固定、指令种类尽量少 B.指令功能强大、寻址方式复杂多样 C.增加寄存器数目以减少访存次数 D.用硬布线电路实现指令解码,快速完成指令译码 7.()防火墙是内部网和外部网的隔离点, 它可对应用层的通信数据流进行监控和过滤。 A.包过滤 B.应用级网关 C.数据库 D.WEB 8.下述协议中与安全电子邮箱服务无关的是()。 A.SSL

软件体系结构期末考试试题

软件体系结构-设计模式练习题1 1.面向对象分析与设计中的(1)是指一个模块在扩展性方面应该是开放的,而在更改性方面应该是封闭的;而(2)是指子类应当可以替换父类并出现在父类能够出现的任何地方。 (1) A.开闭原则 B.替换原则 C.依赖原则 D.单一职责原则 (2) A.开闭原则 B.替换原则 C.依赖原则 D.单一职责原则 2.(3)限制了创建类的实例数量,而(4)将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 (3) A.命令模式(Command)B.适配器模式(Adapter)C.策略模式(Strategy) D.单例模式(Singleton) (4) A.命令模式(Command) B.适配器模式(Adapter) C.策略模式(Strategy) D.单例模式(Singleton) 3. (5)设计模式允许一个对象在其内部状态改变时改变它的行为。下图为这种设计模式的类图,已知类State 为抽象类,则类(6)的实例代表了Context 对象的状态。 (5) A.单件(Singleton) B.桥接(Bridge) C.组合(Composite) D.状态(State) (6) A. Context B. ConcreteStateA C. Handle D. State

4.某公司欲开发一门户网站,将公司的各个分公司及办事处信息进行整合。现决定采用Composite设计模式来实现公司的组织结构关系,并设计了如下图所示的UML类图。图中与Composite模式中的“Component”角色相对应的类是(7) ,与“Composite”角色相对应的类是(8) 。 (7) A. Company B. FinanceDepartment C. HRDepartment D. ConcreteCompany (8) A. Company B. FinanceDepartment C. HRDepartment D. ConcreteCompany 5.某软件公司正在设计一个通用的嵌入式数据处理平台,需要支持多种数据处理芯片之间的数据传递与交换。该平台的核心功能之一要求能够屏蔽芯片之间的数据交互,使其耦合松散,并且可以独立改变芯片之间的交互过程。针对上述需求,采用(9)最为合适。 (9) A. 抽象工厂模式 B. 策略模式 C. 中介者模式D. 状态模式 6.某软件公司正在设计一个图像处理软件,该软件需要支持用户在图像处理中的撤销和重做等动作,为了实现该功能,采用(10)最为合适。 (10) A. 单例模式B. 命令模式 C. 访问者模式 D. 适配器模式 7.某互联网公司正在设计一套网络聊天系统,为了限制用户在使用该系统时发表不恰当言论,需要对聊天内容进行特定敏感词的过滤。针对上述功能需求,采用(11)能够灵活配置敏感 词的过滤过程。 (11) A. 责任链模式 B. 工厂模式 C. 组合模式 D. 装饰模式

相关文档