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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

第3章 创建型模式实训培训资料.docx

1、第3章 创建型模式实训培训资料第3章 创建型模式实训第3章 创建型模式实训3.3 实训练习3.3.2 填空题1. 某系统提供一个简单计算器,具有简单的加法和减法功能,系统可以根据用户的选择实例化相应的操作类。现使用简单工厂模式设计该系统,类图如图1所示:图1 类图在图1中,Operation是抽象类,其中定义了抽象方法getResult(),其子类AddOperation用于实现加法操作,SubOperation用于实现减法操作,Calculator是简单工厂类,工厂方法为createOperation(),该方法接收一个char类型的字符参数,如果传入的参数为“+”,工厂方法返回一个AddO

2、peration类型的对象,如果传入的参数为“-”,则返回一个SubOperation类型的对象。【Java代码】abstract class Operation protected int numberA; protected int numberB; / numberA和numberB的Setter方法和Getter方法省略 public (1) int getResult();class AddOperation extends Operation public int getResult() return numberA + numberB; class SubOperation ex

3、tends Operation public int getResult() return numberA - numberB; class Calculator public (2) createOperation(char operator) Operation op = null; (3) case +: op = (4) ; break; case -: op = (5) ; break; (6) ; class Test public static void main(String args) int result; Operation op1 = Calculator.create

4、Operation(+); op1.setNumberA(20); op1.setNumberB(10); result = (7) ; System.out.println(result); 2. 某软件公司欲开发一个数据格式转换工具,可以将不同数据源如txt文件、数据库、Excel表格中的数据转换成XML格式。为了让系统具有更好的扩展性,在未来支持新类型的数据源,开发人员使用工厂方法模式设计该转换工具的核心类。在工厂类中封装了具体转换类的初始化和创建过程,客户端只需使用工厂类即可获得具体的转换类对象,再调用其相应方法实现数据转换操作。其类图如图1所示:图1 类图在图1中,Convertor

5、Creator是抽象工厂接口,它声明了工厂方法getConvertor(),在其子类中实现该方法,用于创建具体的转换对象;Convertor是抽象产品接口,它声明了抽象数据转换方法transform(),在其子类中实现该方法,用于完成具体的数据转换操作。类DBConvertor和TXTConvertor分别用于将数据库中的数据和txt文件中的数据转换为XML格式。【Java代码】interface ConvertorCreator (1) ;interface Convertor public String transform();class DBConvertorCreator implem

6、ents ConvertorCreator public Convertor getConvertor() (2) ; class TXTConvertorCreator implements ConvertorCreator public Convertor getConvertor() (3) ; class DBConvertor implements Convertor public String transform() /实现代码省略 class TXTConvertor implements Convertor public String transform() /实现代码省略 c

7、lass Test public static void main(String args) ConvertorCreator creator; (4) ; creator = new DBConvertorCreator(); convertor = (5) ; convertor.transform(); 如果需要针对一种新的数据源进行数据转换,该系统至少需要增加 (6) 个类。工厂方法模式体现了以下哪些面向对象设计原则? (7) 。(多选)A. 开闭原则 B. 依赖倒转原则 C. 接口隔离原则 D. 单一职责原则 E. 合成复用原则3. 某手机游戏软件公司欲推出一款新的游戏软件,该软件能

8、够支持Symbian、Android和Windows Mobile等多个主流的手机操作系统平台,针对不同的手机操作系统,该游戏软件提供了不同的游戏操作控制类和游戏界面控制类,并提供相应的工厂类来封装这些类的初始化。软件要求具有较好的扩展性以支持新的操作系统平台,为了满足上述需求,采用抽象工厂模式进行设计所得类图如图1所示:图1 类图 在该设计方案中,具体工厂类如SymbianFactory用于创建Symbian操作系统平台下的游戏操作控制类SymbianOperationController和游戏界面控制类SymbianInterfaceController,再通过它们的业务方法来实现对游戏软

9、件的初始化和运行控制。【Java代码】interface AbstractFactory public OperationController getOperationController(); public InterfaceController getInterfaceController();interface OperationController public void init(); /其他方法声明省略interface InterfaceController public void init(); /其他方法声明省略class SymbianFactory implements

10、AbstractFactory public OperationController getOperationController() (1) ; public InterfaceController getInterfaceController() (2) ; class AndroidFactory (3) public OperationController getOperationController() return new AndroidOperationController(); public InterfaceController getInterfaceController(

11、) return new AndroidInterfaceController(); class SymbianOperationController (4) public void init() /实现代码省略 /其他方法声明省略class AndroidOperationController (5) public void init() /实现代码省略 /其他方法声明省略class SymbianInterfaceController implements InterfaceController public void init() /实现代码省略 /其他方法声明省略class Andro

12、idInterfaceController implements InterfaceController public void init() /实现代码省略 /其他方法声明省略class Test public static void main(String args) AbstractFactory af; (6) oc; (7) ic; af = new SymbianFactory(); oc = (8) ; ic = (9) ; oc.init(); ic.init(); 如何需要在上述设计方案中增加对Windows Mobile操作系统的支持,需对该设计方案进行哪些调整,简单说明实

13、现过程。4. 某软件公司欲开发一个音频和视频播放软件,为了给用户使用提供方便,该播放软件提供了多种界面显示模式,如完整模式、精简模式、记忆模式、网络模式等。在不同的显示模式下主界面的组成元素有所差异,如在完整模式下将显示菜单、播放列表、主窗口、控制条等,在精简模式下只显示主窗口和控制条,而在记忆模式下将显示主窗口、控制条、收藏列表等。现使用建造者模式设计该软件,所得类图如图1所示:图1 类图在该设计方案中,MainScreen是播放器的主界面,它是一个复合对象,包括菜单、播放列表、主窗口和控制条等成员。ModeBuilder是一个抽象类,定义了一组抽象方法buildXXX()用于逐步构造一个完

14、整的MainScreen对象,getScreen()是工厂方法,用于返回一个构造好的MainScreen对象。ScreenModeController充当指挥者,用于指导复合对象的创建,其中construct()方法封装了具体创建流程,并向客户类返回完整的产品对象。【Java代码】class MainScreen public String menu; public String playList; public String mainWindow; public String controlBar; (1) class ModeBuilder protected MainScreen screen = new MainScreen(); public abstract void buildMenu(); public abstract void buildPlayList(); public abstract void buildMainWin

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

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