设计模式与XML(二)建造者模式和单例模式(C++)

一、实验目的及要求

1、掌握创建型模式的概念。

2、掌握工厂模式、抽象工厂模式、单例模式、建造者模式、原型模式的构造方式及使用情景。

 

二、实验设备(环境)

1、   软件需求: Dev-Cpp5.4, Rational Rose / Microsoft Visio

2、   硬件需求: Pentium III 450以上的CPU处理器,1G以上的内存,2G的自由硬盘空间

 

三、实验内容

1、建造者模式可以用于描述KFC如何创建套餐:套餐是一个复杂对象,它一般包含主食(如汉堡、鸡肉卷等)和饮料(如果汁、可乐等)等组成部分,不同的套餐有不同的组成部分,而KFC的服务员可以根据顾客的要求,一步一步装配这些组成部分,构造一份完整的套餐,然后返回给顾客。用建造者模式实现KFC的2份套餐(A套餐和B套餐),并在客户端(main函数)打印套餐的内容。

 

2、假设步骤1中的KFC订餐系统中的机器人服务员只能有一个实例,请用单例模式改造这个机器人服务员的角色。

四、实验步骤与结果

练习三

1.建造者模式KFC设计结构图:

 

2.程序运行结果:

 

3.代码分析:

Builder.cpp

抽象Builder基类,定义不同部分的创建接口,ConcreteBuilder1与ConcreteBuilder2是Builder的两个派生类,用于实现两种不同的建造细节,使用Builder构建产品,构建产品的过程都一致,但是不同的builder有不同的实现。

代码:

#include "Builder.h"
#include "Product.h"
#include <iostream>
using namespace std;
//抽象Builder基类,定义不同部分的创建接口
Builder::Builder()
{
}
Builder::~Builder()
{
}

ConcreteBuilder1::ConcreteBuilder1()
{
	product = new Product();
}
ConcreteBuilder1::~ConcreteBuilder1()
{
}
ConcreteBuilder2::ConcreteBuilder2()
{
	p
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值