- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C课程设计3
面
向
对
象
编
程
技
术
课程设计实验报告
专业:网络工程
班级:网113
学号:
姓名:
2012 12
设计时间: 年 月
(1)应用程序名称:水果生产工厂
(2)应用程序主体:应用程序里有一个抽象的水果基类(Fruit)和抽象的工厂基类(Factory)。
而各种具体的水果公有继承了水果基类,如Apple,Banana,而具体工厂(ConcreteFactory)
公有继承了工厂基类,用于实例化各种水果派生类。另外,该程序包括基本的选择界面。
设计目的:为了把类的实例化延迟到子类,由客户决定究竟实例化哪一个类。
(3)应用程序简介:
功能介绍:
本程序会有一个选择界面,来供客户选择生产哪种水果。并且向客户展示以后如何
调用该水果对象。
并且本程序通过Singleton 模式保证只实例化唯一一个水果生产工厂。
基本内容:
本程序有如下几个水果类:Apple,Banana,Pear,Peach,Strawberry,这些都是Fruit 的
公有派生类。每个水果类的show()函数里面都会输出属于自己水果的一句话。如Apple
会输出:An apple a day keepsthe doctor away。每种水果都有自己的颜色,含水量,含
糖量。而水果工厂通过Fruit*CreateFruit(int choice)函数来实例化各种水果类。
主要技术:
Factory 模式、Singleton 模式
因为Factory 是抽象基类,而该抽象基类内有纯虚函数Fruit*CreateFruit(int choice),
并且由该基类派生出了一个水果工厂 (ConcreteFactory),该水果工厂给出了Fruit*
CreateFruit(int choice) 的实现方式,即实例化各种水果类。并且基类里由static
Factory*Instance();和staticFactory*_instance;来实现Sinleton模式来保证只实例化一个水
果生产工厂。所以可以用Factory *fac new ConcreteFactory();定义一个指针,申请一段
内存空间,为以后调用 Fruit*CreateFruit(int choice)做准备。
当客户选择好生产哪一种水果时,如客户选择苹果,苹果用1表示。既可以用这句
话来实例化一个苹果类:Fruit *A fac-CreateFruit(1);,这样就把类的实例化推迟到子
类了。虽然指针是Fruit 型,但通过把基类的相关函数设为虚函数,即可通过该指针访
问派生类的相关函数。我的程序是以show()函数为例。这即为多态性。
运行环境:
VC6.0
主要运行界面:
总体设计结构图
Factory Fruit
-_instance:Factory* -color[20]:char
-water:double
+abstratCreateFruit():Factory* -sweet:double
static+Instance():Factory*
文档评论(0)