抽象工厂和建造者模式

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验8 抽象工厂和建造者模式

一、实验目的

1、掌握抽象工厂模式的概念、模式结构、适用场景、优点和缺点。

3、掌握建造者模式的概念、模式结构、适用场景、优点和缺点。

二、实验环境

Windows操作系统,Rational Rose,eclipse、Myeclipse ,VS Studio,记事本等等。

三、实验内容

1、抽象工厂模式:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定它们的具体类。

抽象工厂的模式图如下所示。模式中包含4个角色,抽象工厂、具体工厂、抽象产品和具体产品。

题目描述:我们在上一节讲了女娲造人的故事。人是造出来了,世界也热闹了,可是低头一看,都是清一色的类型,缺少关爱、仇恨、喜怒哀乐等情绪,人类的生命太平淡了,女娲一想,猛然一拍脑袋,记给人类定义性别了,那怎么办?

由于女娲之前的准备工作花费了非常大的精力,比如准备黄土,准备八卦炉等,从头开始建立所有的事物也是不可能的,那就想在现有的条件下重新造人,尽可能旧物利用嘛。怎么才能让人类有爱有恨呢?是神仙当然办法的了,定义互斥的性别,然后在每个个体中埋下一颗种子:异性相吸,成熟后就一定会去找个异性(这就是我们说的爱情原动力)。从设计角度来看,一个具体的对象通过两个坐标就可以确定:肤色和性别。

产品类分析完毕了,生产的工厂类该(八卦炉)怎么改造呢?只有一个生产设备,要么生产出全都是男性,要么都是女性,那不行呀,这么大的翻天覆地的改造就是为了产生不同性别的人类。有办法了!把目前已经有的生产设备——八卦炉拆开,于是女娲就使用了“八卦拷贝术”,把原先的八卦炉一个变两个,并且略加修改,就成了女性八卦炉(只生产女性人种)和男性八卦炉(只生产男性人种),于是乎女娲就开始准备生产了。根据描述,请使用抽象工厂模式,画出UML类图,实现题目描述的功能。

UML类图:

代码Human.java

WhitePeople.java

YellowPeople.java

MaleBlack.java

FemaleWhite.java

MaleWhite.java

FemaleYellow.java

MaleYellow.java

HumanFactory.java

FemaleFactory.java

MaleFactory.java

2、建造者模式应用:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

建造者模式的通用类图:

在建造者模式中,有如下四个角色:

Product 产品类:具体产品。

Builder 抽象建造者:是为创建一个Product对象的各个部件指定的抽象接口。ConcreteBuilder具体建造者:实现Builder接口,构造和装配各个部件。Director 指挥者:用来根据用户的需求构建对象。

题目描述:

产品:不同风格的house,有中式house、欧式house等,(假设在house类中建立一个私有的String类型的字段来描述house的风格),试用Builder模式建造中式house和欧式house。并创建客户端,建造一所中式house和一所欧式house,并输出house的风格。(Builder模式典型UML类图如下)

代码:

House.java

Bulider.java

BuildEurope.java

BuildChinese.java

Director.java

Client.java

1.要求:在该文档中,直接在相应题目下面,根据要求,给出相应的UML图

和功能实现的代码。其中可以采用Java、C#、C++等实现。

2.上传文件格式要求:学号+姓名+第9周.doc

相关文档
最新文档