抽象工厂和建造者模式.docx
- 文档编号:30080435
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:12
- 大小:295KB
抽象工厂和建造者模式.docx
《抽象工厂和建造者模式.docx》由会员分享,可在线阅读,更多相关《抽象工厂和建造者模式.docx(12页珍藏版)》请在冰豆网上搜索。
抽象工厂和建造者模式
实验8抽象工厂和建造者模式
一、实验目的
1、掌握抽象工厂模式的概念、模式结构、适用场景、优点和缺点。
3、掌握建造者模式的概念、模式结构、适用场景、优点和缺点。
二、实验环境
Windows操作系统,RationalRose,eclipse、Myeclipse,VSStudio,记事本等等。
三、实验内容
1、抽象工厂模式:
为创建一组相关或相互依赖的对象提供一个接口,而且无需指
定它们的具体类。
抽象工厂的模式图如下所示。
模式中包含4个角色,抽象工厂、具体工厂、抽象产品和具体产品。
题目描述:
我们在上一节讲了女娲造人的故事。
人是造出来了,世界也热闹了,可是低头一看,都是清一色的类型,缺少关爱、仇恨、喜怒哀乐等情绪,人类的生命太平淡了,女娲一想,猛然一拍脑袋,记给人类定义性别了,那怎么办?
由于女娲之前的准备工作花费了非常大的精力,比如准备黄土,准备八卦炉等,从头开始建立所有的事物也是不可能的,那就想在现有的条件下重新造人,尽可能旧物利用嘛。
怎么才能让人类有爱有恨呢?
是神仙当然办法的了,定义互斥的性别,然后在每个个体中埋下一颗种子:
异性相吸,成熟后就一定会去找个异性(这就是我们说的爱情原动力)。
从设计角度来看,一个具体的对象通过两个坐标就可以确定:
肤色和性别。
产品类分析完毕了,生产的工厂类该(八卦炉)怎么改造呢?
只有一个生产设备,要么生产出全都是男性,要么都是女性,那不行呀,这么大的翻天覆地的改造就是为了产生不同性别的人类。
有办法了!
把目前已经有的生产设备——八卦炉拆开,于是女娲就使用了“八卦拷贝术”,把原先的八卦炉一个变两个,并且略加修改,就成了女性八卦炉(只生产女性人种)和男性八卦炉(只生产男性人种),于是乎女娲就开始准备生产了。
根据描述,请使用抽象工厂模式,画出UML类图,实现题目描述的功能。
UML类图:
代码
Human.java
BlackPeople.java
WhitePeople.java
YellowPeople.java
FemaleBlack.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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 抽象 工厂 建造 模式