第一范文网 - 专业文章范例文档资料分享平台

设计模式考试

来源:用户分享 时间:2025/8/17 16:47:22 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

,填空

1. 设计模式元素包括名称、问题、方案、效果。

2. 设计模式中效果有 应用效果 、 使用模式 两方面。

3. 观察者模式包含的角色有 主题、观察者、具体主题、具体观察者。 4. 适配器模式包含的角色有 目标、被适配者、适配器。 5. 外观模式包含的角色有 子系统、外观。

6. 工厂方法模式包含的角色有 抽象产品、构造者、具体产品、具体构造者。 7. 抽象工厂模式包含的角色有 抽象产品、抽象工厂、具体产品、具体工厂。 8. 模板方法模式包含的角色有 抽象模板、具体模板。

9. 代理模式包含的角色有 抽象主题、真实主题、代理主题。

10. 工厂设计模式分为 简单工厂模式 、 抽象工厂模式 、 工厂方法模式 。 11. 设计模式的两大主题对象组合、 类继承 的讨论 12. 设计的基本原则 开-闭原则 、 单一职责原则 、 依赖倒转原则 、 迪米特法则(LOD) 。 13. 工厂方法模式的特点:

只能有一个抽象产品类,这个抽象产品类可以派生出多个具体产品类。 单选题

1. 静态工厂的核心角色是什么

a) 抽象产品角色 具体产品角色 工厂角色 2. 设计模式中抽象工厂模式的定义

a) 提供一个创建一系列或相互依赖对象的接口,而无须指定它们具体的类 3. 当将一个类的接口转化成客户希望的另一个接口,使用哪种设计模式

a) 适配器模式 4. 适配器模式干什么的

a) 将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不

兼容而不能一起工作的那些类可以一起工作

5. 常见的设计模式有哪些(分成几种类型)

a) 创建型、行为型、结构型 6. 工厂方法模式的主要功能是什么

a) 定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的

实例化延迟到其子类。

7. 设计模式的基本原则

a) 开-闭原则、单一职责原则、依赖倒转原则、迪米特法则(LOD) 简答题

1. 抽象工厂模式如何用一系列工厂方法模式来实现

抽象工厂模式的关键是在一个抽象类或接口中定义若干抽象方法,这些抽象方法分别返回某个类的实例,该抽象类或者接口让其子类或实现该接口的类的重写,这些抽象方法为用户提供一系列相关的对象。

2. 外观模式在系统中的重要性(给出一个解决方案,你如何使用外观模式来编程)

a) 使客户和子系统中的类无耦合,并且使得子系统使用起来更加方便。

b) 外观只是提供了一个更加简洁的界面,并不影响用户直接使用子系统中的类。 c) 子系统中任何类对其方法的内容进行修改,不影响外观的代码。 3. 观察者模式中的角色,和每个角色的作用

a) 主题(Subject):主题是一个接口,该接口规定了具体主题需要实现的方法,例如:

添加、删除观察者以及通知观察者更新数据等方法。

b) 观察者(Observer):观察者是一个接口,该接口规定了具体观察者用来更新数据

的方法。

c) 具体主题(ConcreteSubject):具体主题是实现主题接口类的一个实例,该实例包

含有可以经常发生变化的数据。具体主题使用一个集合,比如ArrayList,存放观察者的引用,以便数据变化时通知具体的观察者。

d) 具体观察者(Concrete Observer):具体观察者是实现观察者接口的一个实例。具

体观察者包含有可以存放具体主题引用的主题接口变量,以便具体观察者让具体主题将自己添加到具体主题的集合中,使自己成为它的观察者,或让这个具体的主题将自己从具体的主题中的观察者列表中删除,使自己不再是它的观察者。

4. 工厂方法和抽像方法的区别

a) 工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个抽象产品类。 b) 工厂方法模式中的具体工厂只能创建一个具体产品类的实例,而抽象工厂模式中的

具体工厂可以创建多个相关的具体产品实例。 c) 当系统中添加了新的具体产品时,如果采用工厂方法模式进行设计时,需要创建新

的具体产品类,然后还需要创建一个具体的构造者然后将它们一并添加至原有系统中即可,因此完全符合设计模式中的“开-闭原则。

5. 什么是适配器模式

a) 适配器模式是将一个类的接口(被适配者)转换成客户希望的另外一个接口(目标)

的成熟模式,该模式中涉及有目标、被适配者和适配器。适配器模式的关键是建立一个适配器,这个适配器实现了目标接口并包含有被适配者的引用。

使用场景

对于一个复杂的子系统,需要为用户提供一个简单的交互操作

不希望客户代码和子系统中的类有耦合,以便提高子系统的独立性和可移植性 当整个系统需要构建一个层次结构的子系统,不希望这些子系统相互直接的交互

报社的广告系统

CheckWord的实例负责检查广告的内容含有的字符个数 Charge类的实例负责计算费用

TypeSeting的实例负责对广告进行排版 ClientServerFacade 负责与子系统交互

HTML文件读取

ReadFile负责读取HTML页面内容 AnalyzeInfomation负责解析文件 SaveFile 负责保存文件

ReadAndWriteFacade 负责与子系统交互

应用题

1、各类客运车站在安排乘客上车时都进行安全检查、验证车票、选择车体类型三个步骤。 请采用模板方法模式实现上述要求。 (1)抽象模板

public abstract class Station { }

//定义安全检查

public abstract void safetyExamine(); //定义检查车票

public abstract void validateTicket(); //定义选择车体类型

public abstract void choiceCarriageType(); /**

* 定义模板方法

* 说明:模板方法一般不需要子类进行覆盖,因此采用final修饰 */

public final void ridingStep(){ }

//实现具体的乘车步骤,即:实现算法骨架 this.safetyExamine(); this.validateTicket();

this.choiceCarriageType();

(2)//具体模板,继承抽象模板,定义了公共汽车站乘车的具体步骤的实现细节 public class BusStation extends Station{

//实现符合公共汽车站的安全检查步骤 public void safetyExamine() {

System.out.println(\公共汽车站安全检查。。。\); }

//实现符合公共汽车站的检票步骤

public void validateTicket() {

System.out.println(\公共汽车站检票。。。\); }

//实现符合公共汽车站的选择车体类型步骤 public void choiceCarriageType() {

System.out.println(\公共汽车站选择列车车体类型。。。\);

}

}

(3)//具体模板,继承抽象模板,定义了火车站乘车的具体步骤的实现细节 public class RailWayStation extends Station{

//实现符合火车站的安全检查步骤 public void safetyExamine() {

System.out.println(\火车站安全检查。。。\); }

//实现符合火车站的检票步骤

public void validateTicket() {

System.out.println(\火车站检票。。。\); }

//实现符合火车站的选择车体类型步骤 public void choiceCarriageType() {

System.out.println(\火车站选择列车车体类型。。。\); } }

(4)public class Application {

public static void main(String[] args) {

//用于表示具体的车站

Station station = null;

//火车站

station = new RailWayStation(); }

//火车站的乘车步骤

station.ridingStep(); //公共汽车站

station = new BusStation();

//公共汽车站的乘车步骤 station.ridingStep(); }

2、在演艺界中,如果某位明星出场演示,一般都是由主办方与该明星的经纪人进行沟通确定演示事宜,例如:出场费、节目名单等,并且经纪人还要为本次演示进行缴税,明星只是完成具体的演出工作即可,明星并不直接参与与主办方的沟通、出场费用的洽谈以后演出后的缴税等一系列工作。 请采用代理模式完成上面的功能需求。 (1)//抽象主题接口,用于表示演艺界人士 public interface IArtist {

//定义演艺界人士的基本功能,本例为:表演 public void show();

搜索更多关于: 设计模式考试 的文档
设计模式考试.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c9h0w46nce51j03v4hzh1_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top