第3章创建型模式实训文档格式.docx

上传人:b****1 文档编号:13284662 上传时间:2022-10-09 格式:DOCX 页数:18 大小:261.15KB
下载 相关 举报
第3章创建型模式实训文档格式.docx_第1页
第1页 / 共18页
第3章创建型模式实训文档格式.docx_第2页
第2页 / 共18页
第3章创建型模式实训文档格式.docx_第3页
第3页 / 共18页
第3章创建型模式实训文档格式.docx_第4页
第4页 / 共18页
第3章创建型模式实训文档格式.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

第3章创建型模式实训文档格式.docx

《第3章创建型模式实训文档格式.docx》由会员分享,可在线阅读,更多相关《第3章创建型模式实训文档格式.docx(18页珍藏版)》请在冰豆网上搜索。

第3章创建型模式实训文档格式.docx

protectedintnumberB;

//numberA和numberB的Setter方法和Getter方法省略

public

(1)intgetResult();

}

classAddOperationextendsOperation

publicintgetResult()

{

returnnumberA+numberB;

}

classSubOperationextendsOperation

returnnumberA-numberB;

classCalculator

{

public

(2)createOperation(charoperator)

Operationop=null;

(3)

{

case'

+'

:

op=(4);

break;

-'

op=(5);

}

(6);

classTest

publicstaticvoidmain(Stringargs[])

intresult;

Operationop1=Calculator.createOperation('

);

op1.setNumberA(20);

op1.setNumberB(10);

result=(7);

System.out.println(result);

2.某软件公司欲开发一个数据格式转换工具,可以将不同数据源如txt文件、数据库、Excel表格中的数据转换成XML格式。

为了让系统具有更好的扩展性,在未来支持新类型的数据源,开发人员使用工厂方法模式设计该转换工具的核心类。

在工厂类中封装了具体转换类的初始化和创建过程,客户端只需使用工厂类即可获得具体的转换类对象,再调用其相应方法实现数据转换操作。

其类图如图1所示:

在图1中,ConvertorCreator是抽象工厂接口,它声明了工厂方法getConvertor(),在其子类中实现该方法,用于创建具体的转换对象;

Convertor是抽象产品接口,它声明了抽象数据转换方法transform(),在其子类中实现该方法,用于完成具体的数据转换操作。

类DBConvertor和TXTConvertor分别用于将数据库中的数据和txt文件中的数据转换为XML格式。

interfaceConvertorCreator

(1);

interfaceConvertor

publicStringtransform();

classDBConvertorCreatorimplementsConvertorCreator

publicConvertorgetConvertor()

(2);

classTXTConvertorCreatorimplementsConvertorCreator

(3);

}

classDBConvertorimplementsConvertor

publicStringtransform()

//实现代码省略

classTXTConvertorimplementsConvertor

ConvertorCreatorcreator;

(4);

creator=newDBConvertorCreator();

convertor=(5);

convertor.transform();

如果需要针对一种新的数据源进行数据转换,该系统至少需要增加(6)个类。

工厂方法模式体现了以下哪些面向对象设计原则?

(7)。

(多选)

A.开闭原则B.依赖倒转原则C.接口隔离原则D.单一职责原则E.合成复用原则

3.某手机游戏软件公司欲推出一款新的游戏软件,该软件能够支持Symbian、Android和WindowsMobile等多个主流的手机操作系统平台,针对不同的手机操作系统,该游戏软件提供了不同的游戏操作控制类和游戏界面控制类,并提供相应的工厂类来封装这些类的初始化。

软件要求具有较好的扩展性以支持新的操作系统平台,为了满足上述需求,采用抽象工厂模式进行设计所得类图如图1所示:

在该设计方案中,具体工厂类如SymbianFactory用于创建Symbian操作系统平台下的游戏操作控制类SymbianOperationController和游戏界面控制类SymbianInterfaceController,再通过它们的业务方法来实现对游戏软件的初始化和运行控制。

interfaceAbstractFactory

publicOperationControllergetOperationController();

publicInterfaceControllergetInterfaceController();

interfaceOperationController

publicvoidinit();

//其他方法声明省略

interfaceInterfaceController

classSymbianFactoryimplementsAbstractFactory

publicOperationControllergetOperationController()

(1);

publicInterfaceControllergetInterfaceController()

classAndroidFactory(3)

returnnewAndroidOperationController();

returnnewAndroidInterfaceController();

classSymbianOperationController(4)

publicvoidinit(){

classAndroidOperationController(5)

classSymbianInterfaceControllerimplementsInterfaceController

classAndroidInterfaceControllerimplementsInterfaceController

AbstractFactoryaf;

(6)oc;

(7)ic;

af=newSymbianFactory();

oc=(8);

ic=(9);

oc.init();

ic.init();

如何需要在上述设计方案中增加对WindowsMobile操作系统的支持,需对该设计方案进行哪些调整,简单说明实现过程。

4.某软件公司欲开发一个音频和视频播放软件,为了给用户使用提供方便,该播放软件提供了多种界面显示模式,如完整模式、精简模式、记忆模式、网络模式等。

在不同的显示模式下主界面的组成元素有所差异,如在完整模式下将显示菜单、播放列表、主窗口、控制条等,在精简模式下只显示主窗口和控制条,而在记忆模式下将显示主窗口、控制条、收藏列表等。

现使用建造者模式设计该软件,所得类图如图1所示:

在该设计方案中,MainScreen是播放器的主界面,它是一个复合对象,包括菜单、播放列表、主窗口和控制条等成员。

ModeBuilder是一个抽象类,定义了一组抽象方法buildXXX()用于逐步构造一个完整的MainScreen对象,getScreen()是工厂方法,用于返回一个构造好的MainScreen对象。

ScreenModeController充当指挥者,用于指导复合对象的创建,其中construct()方法封装了具体创建流程,并向客户类返回完整的产品对象。

classMainScreen

publicStringmenu;

publicStringplayList;

publicStringmainWindow;

publicStringcontrolBar;

(1)classModeBuilder

protectedMainScreenscreen=newMainScreen();

publicabstractvoidbuildMenu();

publicabstractvoidbuildPlayList();

publicabstractvoidbuildMainWindow();

publicabstr

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 教育学心理学

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

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