设计模式(简单工厂、工厂方法、抽象工厂模式)
一、实验目的
1.熟悉建模工具。
2.掌握简单工厂模式、工厂方法模式、抽象工厂模式,并进行设计应用。
二、实验内容
1.简单工厂模式
使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数M,则返回一个Man对象,如果传入参数W,则返回一个Woman对象,请实现该场景。现需要增加一个新的Robot类,如果传入参数R,则返回一个Robot对象,对代码进行修改并注意女娲的变化。
2.工厂方法模式
海尔工厂(Haier)生产海尔空调(HaierAirCondition),美的工厂(Midea)生产美的空调(MideaAirCondition) 。使用工厂方法模式描述该场景,绘制类图并编程实现。
3.抽象工厂模式
电脑配件生产工厂生产内存、CPU等硬件设备,这些内存、CPU的品牌、型号并不一定相同,根据下面的“产品等级结构-产品族”示意图,使用抽象工厂模式实现电脑配件生产过程并绘制相应的类图,绘制类图并编程实现。
三、题目分析及类图设计
1.题目分析
(1)简单工厂模式:Person接口抽象一个create()方法。Woman、Man和Robot类实现Person接口的create()方法(具体创造某一人种)。Nvwa类作为一个工厂角色,接收xml文件中的参数值确定返回一个具体的人种对象。
(2)工厂方法模式:AirCondition接口抽象一个create()方法,HaierAirCondition类和MideaAirCondition类实现接口AirCondition的create()方法(具体创造某一类空调)。AirConditionFactory接口抽象一个返回AirCondition的produceAirCondition()方法。HaierAirConditionFactory类和MideaAirConditionFactory类实现AirConditionFactory接口的方法,返回一个具体的空调对象。
(3)抽象工厂模式:接口CPU抽象了一个run()方法,接口RAM抽象了一个use()方法,MacCPU类和PcCPU类实现了CPU接口中的run()方法(具体的某一种CPU运行)。MacRAM类和PcRAM类实现了RAM接口中的use()方法(具体某一种RAM在使用)。接口EFactory抽象了一个返回RAM对象的produceRAM()方法和返回CPU对象的produceCPU()方法,MacFactory类实现了EFactory接口中的两个方法,用于返回MacCPU对象和MacRAM对象,PcFactory类实现了EFactory接口中的两个方法,用于返回PcCPU对象和PcRAM对象.
2.类图设计
2.1手绘uml类图
(1)简单工厂模式:
(2)工厂方法模式: