没有合适的资源?快使用搜索试试~ 我知道了~
首页Java设计模式刘伟书本中模拟考试答案
Java设计模式刘伟书本中模拟考试答案
4星 · 超过85%的资源 需积分: 50 71 下载量 32 浏览量
更新于2023-03-16
评论 27
收藏 1.17MB PDF 举报
该资源是书本后面的模拟试题的答案,本书的课后习题答案可以参考我上传的另外一个资源
资源详情
资源评论
资源推荐
1
《Java 设计模式》模拟试题参考答案及评分标准
教材:刘伟. Java 设计模式. 北京: 清华大学出版社, 2018.
ISBN: 9787302488316
【说明:如有意见和建议,请通过电子邮箱 weiliu_china@126.com 与作者联系!】
模拟试题一
一、选择题(每题 2 分,共 30 分)
(1) (2) (3) (4) (5) (6) (7) (8)
C A A D B C D B
(9) (10) (11) (12) (13) (14) (15)
A B C A C B D
二、填空题(每题 1 分,共 10 分)
1. 里氏代换原则 2. 迪米特法则 3. 简单工厂
4. 建造者 5. 外观 6. 享元
7. 职责链 8. 解释器 9. 状态
10. 访问者
三、综合应用题(每题 12 分,共 60 分)
1. 开闭原则的定义:软件实体应该对扩展开放,对修改关闭。【4 分】
说明:【8 分】
工厂方法模式代码片段如下:
//抽象工厂类
public abstract class Factory {
public abstract Product createProduct();
}
//具体工厂类
public class ConcreteFactoryA extends Factory {
public Product createProduct() {
return new ConcreteProductA();
}
}
在客户端存在如下代码片段:
……
Factory factory;
factory = new ConcreteFactoryA(); //可通过反射和配置文件来实现,修改具体工厂类无须修
改源代码
Product product;
product = factory.createProduct();
在工厂方法模式中,引入了抽象工厂类,例如上面代码中的 Factory,所有具体工厂类
2
都是 Factory 的子类(例如 ConcreteFactoryA),具体工厂类负责创建具体的产品。如果要新
增一个具体产品 ConcreteProductB,只需要对应增加一个新的具体工厂类 ConcreteFactoryB
作为 Factory 类的子类,并实现在 Factory 中声明的 createProduct()方法即可,无须修改已有
工厂类和产品类的源代码;在客户端代码中需要将 ConcreteFactoryA 改为 ConcreteFactoryB,
如果采取反射和配置文件等方式来实现的话,只需修改配置文件中存储的类名即可,客户端
代码也无须修改,完全符合开闭原则。
2. 可选择适配器(Adapter)模式和桥接(Bridge)模式来设计该模块。【4 分】
结构图:【8 分】
dc
reader
Chart
- dc : DataCollection
+ display ()
...
DataCollection
+ read ()
...
BarChart
+ display ()
...
TxtDataCollection
+ read ()
...
ExcelDataCollection
- reader : ExcelReader
+ read ()
...
PieChart
+ display ()
...
DBDataCollection
+ read ()
...
ExcelReader
+ getData ()
...
【注:可以不用标注类里面的方法和属性。】
3. 结构图:【8 分】
UIComponent
+
+
+
+
add ()
remove ()
get ()
operation ()
...
Button
+ operation ()
...
TextBox
+ operation ()
...
Container
+
+
+
+
add ()
remove ()
get ()
operation ()
...
Form
+ operation ()
...
Panel
+ operation ()
...
【注:可以不用 标 注 类里面的方法和 属 性 , 也可以 将 Form 和 Panel 直接作 为
UIComponent 的子类,但必须分别持有对 UIComponent 的关联引用。】
3
组合模式的适用场景:【4 分,可酎情计分】
(1) 在具有整体和部分的层次结构中,希望通过一种方式忽略整体与部分的差异,客户
端可以一致地对待它们。
(2) 在一个使用面向对象语言开发的系统中需要处理一个树形结构。
(3) 在一个系统中能够分离出叶子对象和容器对象,而且它们的类型不固定,需要增加
一些新的类型。
4. 可选择观察者模式。【2 分】
观察者模式的定义:定义对象之间的一种一对多依赖关系,使得每当一个对象状态发生
改变时,其相关依赖对象皆得到通知并被自动更新。【2 分】
结构图:【8 分】
observers
Subject
- observers : ArrayList<Observer>
+
+
addObserver (Observer obs)
cry ()
...
: void
: void
Observer
+ response ()
...
: void
Cat
+ cry ()
...
: void
Mouse
+ response ()
...
: void
Master
+ response ()
...
: void
【注:可以不用标注类里面的方法和属性,抽象观察目标类 Subject 可以省略。】
5. 可选择策略模式。【2 分】
策略模式的定义:定义一系列算法类,将每一个算法封装起来,并让它们可以相互替换,
策略模式让算法独立于使用它的客户而变化。【2 分】
结构图:【8 分】
discount
CinemaTicket
-
-
price
discount
: double
: Discount
+
+
+
getPrice ()
setPrice (double price)
setDiscount (Discount discount)
...
: double
: void
: void
Discount
+ compute (double price)
...
: double
StudentDiscount
+ compute (double price)
...
: double
ChildrenDiscount
+ compute (double price)
...
: double
VIPDiscount
+ compute (double price)
...
: double
【注:可以不用标注类里面的方法和属性。】
剩余13页未读,继续阅读
Bowen_Yang
- 粉丝: 233
- 资源: 11
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
- MW全能培训汽轮机调节保安系统PPT教学课件.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论2