版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学习领域9Java设计模式
课后习题
一、填空题
L面向对象的六条基本原则包括:开闭原则,里式代换原则,合成聚合原则以及—
依赖倒转一、—迪米特法则、一单一职责原则O
2.设计模式的基本要素有名字、意图、问题、解决方案、参与者与协作者、实
现、一般性结构。
3.设计模式的思想根源是应基本原则的宏观运用.
4.设计模式是一套被反复使用、多数人知晓的、经过分类编目的、一代码设计
.经验的总结。.
5.一单例模式确保某一个类仅有一个实例,并自行实例化并向整个系统
提供这个实例。
6.在构造者模式中,客户端不再负责对象的创建与组装,而是把这个对象创建
的责任交给其具体的一构造者类」
7.单一职责原则是指有且仅有一个原因引起类的变更。
___________________________________________________________________________________________________O
8.构造者模式是指将一个复杂对象的构造过程和它的表现层分离开来
_______________________________________________________________________________________________O
9.设计模式中应优先使用对象组合,而不是类继承。
10.使用设计模式是为了—可重用代码_、让代码更容易被他人理解、保证代码
可靠性。
二、单选题
1.设计模式的两大主题是(d)
A.系统的维护与开发B对象组合与类的继承
C.系统架构与系统开发D.系统复用与系统扩展
2.构造者的的退化模式是通过合并(c)角色完成退化的。
A.抽象产品B产品C创建者D使用者
3.关于继承表述错误的是(D)
A.继承是一种通过扩展一个已有对象的实现,从而获得新功能的复用方法。
B.泛化类(超类)可以显式地捕获那些公共的属性和方法。特殊类(子类)则通过附加
属性和方法来进行实现的扩展。
C破坏了封装性,因为这会将父类的实现细节暴露给子类。
D.继承本质上是“白盒复用”,对父类的修改,不会影响到子类。
4.设计模式一般用来解决什么样的问题(A)
A.同一问题的不同表相B不同问题的同一表相
C.不同问题的不同表相D.以上都不是
5.下列属于面向对象基本原则的是(C)
A.继承B.封装C.里氏代换D都不是
6.当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用(A)模
式。
A.创建型B.结构型C行为型D.以上都可以
7.Open-Close原则的含义是一个软件实体(A)
A.应当对扩展开放,对修改关闭.
B.应当对修改开放,对扩展关闭
C.应当对继承开放对修改关闭
D.以上都不对
三、简答题
1.什么是Java设计模式?
答题要点:
Java软件设计模式(SoftwareDesignPattern),又称Java设计模式,是一
套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。它描述
了在软件设计过程中的一些不断重复发生的问题,以及该问题的解决方案。其目
的是为了提高代码的可重用性、代码的可读性和代码的可靠性。。
2.请列举出你了解的设计模式。
答题要点:
(1)创建型
主要用于创建对象。工厂方法模式、单例模式、抽象工厂模式、建造者模式。
(2)结构型
主要用于处理类和对象的组合。代理模式、桥接模式、外观模式。
(3)行为型
主要用于描述对类或对象怎样交互和怎样分配职责。观察者模式、策略模式。
3.什么是单例设计模式?
答题要点:
单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单
例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实
例.即一个类只有一个对象实例
4.什么是构造建造者设计模式?
答题要点:
构造者模式是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以
创建不同的表示。建造者模式是一种对象创建型模式。建造者设计模式的实
质是解耦组装过程和仓I建具体部件。
5.建造者设计模式主要包括哪几个角色?
答题要点:
■■者设计模式主要包括以下四个角色:
(1)产品(Product):它是包含多个组成部件的复杂对象,由
具体建造者来创建其各个部件。
(2)抽象建造者(Builder):它是一个包含创建产品各个子部
件的抽象方法的接口,通常还包含一个返回复杂产品的方法
getResult()。
(3)具体建造者(ConcreteBuilder);实现Builder接口,
完成复杂产品的各个部件的具体创建方法。
(4)指挥者(Director):它调用建造者对象中的部件构造与装
配方法完成复杂对象的创建,在指挥者中不涉及具体产品的信息。
6.简述构造者设计模式的编程步骤。
答题要点:
(1)定义产品类Product
(2)定义抽象建造者Builder
(3)定义具体建造者ConcreteBuilder
(4)定义指挥者类Director
(5)定义客户端Client
7抽象工厂模式主要包含哪几个角色?
答题要点:
抽象工厂模式主要包含以下四个角色:
(1)抽象工厂(AbstractFactory):提供了创建产品的接口,它包含多个创
建产品的方法createProductO,可以创建多个不同等级的产品。
(2)具体工厂(ConcreteFactory):主要是实现油象工厂中的多个抽象方
法,完成具体产品的创建。有多个具体工厂。
(3)抽象产品(AbstractProduct):定义了产品的规范,描述了产品的主
要特性和功能,抽象工厂模式有多个抽象产品。
(4)具体产品(ConcreteProduct):实现了抽象产品角色所定义的接口,
由具体工厂来创建,它同具体工厂之间是多对一的关系。
8.简述抽象工厂模式的实现过程。
答题要点:
抽象工厂模式的实现过程是:
(1)创建抽象工厂接口,声明具体工厂的公共接口;
(2)创建具体工厂类(实现抽象工厂接口),定义创建对应具体产品实例的
方法;
(3)创建抽象产品接口,定义抽象产品的公共接口;
(4)创建具体产品类(实现抽象产品接口),定义具体产品的公共接口;
(5)创建客户端类,客户端通过实例化具体的工厂类,并调用其创建不同目
标产品的方法创建不同具体产品类的实例。
四、程序阅读题
L阅读程序,在程序中下划线位置填写语句,使程序完整并能正确运行。
在构造者模式中,客户端不再负责对象的创建与组装,而是把这个对象创建的责
任交给其具体的创建者类,把组装的责任交给组装类,客户端只负责对象的调用,
从而明确了各个类的职责.
classProduct{
privateStringtitle;
privatedoubleprice;
publicStringgetTitle(){
returntitle;
)
publicvoidsetTit!e(Stringtitle){
this.tide=title;
}
publicdoublegetPrice(){
returnprice;
)
publicvoidsetPrice(doubleprice){
this.price=price;
)
publicStringtoStringO{
return,,litle="+title+",price="+price;
classDirector{
privateBuilderbuilder;
publicDirector(Builderbuilder){
this.builder=builder;
}
publicvoidconstruct。(
builder.buildPartA();
builder.buildPartB();
)
interfaceBuilder{
voidbuildPartAO;
voidbuiklPartB();
Productgc(Rcsult();
classBuilderA[1]{
privateProductprodnetA:
publicBuilderA(ProductproductA){
ductA=[21;
)
publicvoidbuildPartAO{
duciA.sciTiilc("设计模式");
)
publicvoidbuiklPailB(){
thductA.setPrice(28.8);
)
publicProductgetResult(){
retumproductA;
)
)
publicclassTcstBuildcr{
publicstaticvoidmain(S(ring[]args){
BuilderAbuilderA=newBuildcrA(ncwProduct。):
Directordirector=newDircctor(buildcrA);
director.constructO;
System.out.println(builderA.getResult());
答题:
[1]implementsBuilder
⑵productA:
五、Java程序员面试题
i.开发中都用到了哪些设计模式?用在什么场合?
答题要点:
所谓设计模式,就是一套被反复使用的代码设计经验的总结
(情境中一个问题经过证实的一个解决方案)。使用设计模式是为了可重用代码、
让代码更容易被他人理解、保证代码可靠性。
在以下场合中使用设计模式:
(1)MVC模式,在J2EE项目开发中主要用在表示层框架中,很好解决视图和流程
控制。在项目中采用的Struts、WebWork等框架。
(2)DAO模式,在项目开发中主要用在数据层,封装数据的访问操作,为业务层
提供数据服务。
(3)IoC模式
,在项目开发中业务层有大量对象,他们之间存在依赖关系,可以使用IoC模式
减少他们之间的代码耦合,提高系统的可扩展性。实际项目中使用的Spring框
架来实现业务组件的装配。
⑷Observe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年湖北省荆州市八年级地生会考真题试卷(含答案)
- 大模型时代的具身智能-
- 17 我变成了一棵树 课件(内嵌视频)2025-2026学年语文三年级下册统编版
- 口腔护理实践中的安全与风险管理
- 员工手册编写及劳动合同制定流程
- 剖宫产恢复期营养建议
- 破产清算企业劳动合同终止规定
- 护理专业护理实践中的伦理挑战课件
- 2026年学校艾滋病自查报告(3篇)
- 吸痰技术的培训与教育
- DB31∕T 310028-2025 数据资源目录编制指南
- 2026校招:北京祥龙资产经营公司试题及答案
- 2025年郑州黄河护理职业学院单招职业适应性测试试题及答案解析
- 工程标准员培训课件
- 教育公共知识考试题库及答案
- 小学语文教学中写作能力培养的课题报告教学研究课题报告
- 小学美术单元化教学中的课堂管理策略探究教学研究课题报告
- 律师协议书模板
- 收费站安全教育培训课件
- GB/T 10091.1-2025事物特性表第1部分:定义和原理
- 专升本食品工程专业2025年食品化学试卷(含答案)
评论
0/150
提交评论