全球旧事资料 分类
第3章创建型模式实训
33实训练习
332填空题
1某系统提供一个简单计算器,具有简单的加法和减法功能,系统可以根据用户的选择实例化相应的操作类。现使用简单工厂模式设计该系统,类图如图1所示:
Operatio
abstract
umberAi
t
umberBi
tgetResulti
tgetNumberAi
tsetNumberAi
t
umberAvoidgetNumberBi
tsetNumberBi
t
umberBvoid
CalculatorcreateOperatio
charoperator
AddOperatio
getResulti
t
图1类图
SubOperatio
getResulti
t
在图1中,Operatio
是抽象类,其中定义了抽象方法getResult,其子类AddOperatio
用于实现加法操作,SubOperatio
用于实现减法操作,Calculator是简单工厂类,工厂方法为createOperatio
,该方法接收一个char类型的字符参数,如果传入的参数为“”,工厂方法返回一个AddOperatio
类型的对象,如果传入的参数为“”,则返回一个SubOperatio
类型的对象。【Java代码】abstractclassOperatio
protectedi
t
umberAprotectedi
t
umberB
umberA和
umberB的Setter方法和Getter方法省略public1i
tgetResultclassAddOperatio
exte
dsOperatio
publici
tgetResultretur
umberA
umberB
fclassSubOperatio
exte
dsOperatio
publici
tgetResultretur
umberA
umberBclassCalculatorpublic2createOperatio
charoperatorOperatio
op
ull3caseop4breakcaseop5break6classTestpublicstaticvoidmai
Stri
gargsi
tresultOperatio
op1CalculatorcreateOperatio
op1setNumberA20op1setNumberB10result7Systemoutpri
tl
result2某软件公司欲开发一个数据格式转换工具,可以将不同数据源如txt文件、数据库、Excel表格中的数据转换成XML格式。为了让系统具有更好的扩展性,在未来支持新类型的数据源,开发人员使用工厂方法模式设计该转换工具的核心类。在工厂类中封装了具体转换类的初始化和创建过程,客户端只需使用工厂类即可获得具体的转换类对象,再调用其相应方法实现数据转换操作。其类图如图1所示:
fCo
vertorCreatorgetCo
vertor
Co
vertortra
sform
DBCo
vertorCreatorgetCo
vertor
TXTCo
vertorCreatorgetCo
vertor
DBCo
vertortra
sform
TXTCo
vertortra
sform
图1类图
在图1中,Co
vertorCreator是抽象工厂接口,它声明了工厂方法getCo
vertor,在其子类中实现该方法,用于创建具体的转换对象;Co
vertor是抽象产品接口,它声明了抽象数据转换方法tra
sform,在其子类中实现该方法,用于完成具体的数据转换操作。类DBCo
vertor和TXTCo
vertor分别用于将数据库中的数据和txt文件中r
好听全球资料 返回顶部