- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c名家对话-012abstractfactory,templatestyle(C名家对话-012abstract厂、模板风格)
c++名家对话-012abstract factory, template style(C++名家对话- 012abstract厂、模板风格)
抽象工厂的模板风格
taodm翻译
--------------------------------------------------------------------------------
“我们知道这是什么吗我指着放在前面金属台上的设备这是在冰原下勘探到的第一批物体之一?”。
珍妮摇着头。”没呢,伙计。它可能是个奖杯,飞船推进器,儿童玩具,或就只是垃圾。上周,我们曾认为将能源系统制造出来了,供这个和其它一些设备用的,但在加入燃料后什么也没发生。随着能源的远去,技术又重回到了画图板上,但他们认为很快能搞定它..”
“凭什么?”
“希望。”
我瞄了一下墙上的钟。”好吧,时间差不多了。我在发抖,我很冷。每次我们要求勘探队给我们些新的东西来鼓捣时,他们总弄出些新的不同的东西。我真希望能弄明白哪怕其中任何一个。”
“我希望我们对从这个artifact厂中出产的东西能知道得更多些珍妮同意。”。
“这使我回想起以前发生在我身上的一些事,在那时......”
珍妮眨着她的眼睛。”告诉为,什么时候我们可以到个暖和的地方。”
--------------------------------------------------------------------------------
“坏消息,“我越过隔板向温迪嚷道。
“呒她探起头?”。
“你知道我上周写的类的吧。”
“不是十分清楚,说下去。”
我没在意。”好吧我继续着,”,“我必须为它实现一个类厂建议我看一下客户群写的类厂。大师。”
“嗯,于是?”突然沮丧显现在她脸上:“噢。鲍勃写的,是吧?”
我沉重地点点头。”是的,我唯一能给予他的称赞是-每当我打开他的代码,我都能学会有些事不该如何实现温迪哈哈地笑着坐回位置上。”。
我叹了口气,然后检查源码。还好,没我想象的那么坏。只不过是极大量的如果语句嵌套-我做好了坏得多的准备的。但已是够可怕的代码了,所以根据大师的忠告,我准备实现一个抽象工厂类[ 1 ]。由于没有多线程和并发的需求我决定将厂实现为单模式:
类basefactory
{
typedef std::auto_ptr 基地(* basecreatefn)();
typedef std::map std::string,basecreatefn fnregistry;
fnregistry注册表;
basefactory() { }
BaseFactory(const basefactory );/ /未实现
basefactory 运算符=(const basefactory );/ /未实现
公共:
静态basefactory和instance() {静态basefactory高炉;返回高炉;}
bool RegCreateFn(const std::string,BaseCreateFn);
std::auto_ptr 基地创建(const std::string)const;
};
布尔basefactory::RegCreateFn(const std::string的类名,basecreatefn FN)
{
[名] = FN注册表;
返回true;
}
std::auto_ptr 基地 basefactory::创建(const std::string const类名)
{
std::auto_ptr 基地对象(0);
FnRegistry::const_iterator regentry =注册表找到(类名);
如果(regentry!
=注册。())
{
对象= regentry - second();
}
返回的对象;
}
在基地的实现文件中,我加入:
命名空间
{
std::auto_ptr 基地 createbase()
{
返回std::auto_ptr 基地(新基地);
}
布尔假= basefactory::instance()。RegCreateFn(“基地”,CreateBase);
}
“嗯,不错,“我思索着。”向厂注册一个函数后,生成实例就如数1、2、3那么简单”
国际main()
{
std::auto_ptr 基地,= basefactory::instance()创造(“基地”);
}
我继续生成一个派生类,以测试通过厂来生成实例在派生类的实现中,我加入:
命名空间
{
std::auto_ptr 源 createderived()
{
返回std::auto_ptr 源(衍生);
}
布尔假= basefactory::instance()。RegCreateFn(“源”,createder
您可能关注的文档
- 008届广州市初三语文议论类知识文段阅读强化训练题(一模后)(The 008 Guangzhou city junior language knowledge about text intensive reading exercises (after the first mock exam)).doc
- 013春福师《管理学概论》在线作业一(第5次)(013 spring Fu division, Introduction to management online homework (fifth times)).doc
- 004 综合报道 环球视野(004 comprehensive report global vision).doc
- 03.1.牛顿第一定律(03.1. Newton's first law).doc
- 03-1-2.财富管理新机遇(03-1-2. new opportunities for wealth management).doc
- 04 观察自己与认识自己(04 observe yourself and know yourself).doc
- 013福师《管理学概论》在线作业二(第5次)(013 Fu division, Introduction to management online homework two (fifth times)).doc
- 05.3.平抛物体的运动(05.3. motion of a flat thrown object).doc
- 02会计再教育(02 accounting re education).doc
- 031牛顿第一定律(031 Newton's first law).doc
- 二年级下册数学课件3三位数的加法(横式计算)沪教版 (共19张PPT).ppt
- 5.1 走向世界大舞台 课件(共19张PPT)-统编版道德与法治九年级下册.pptx
- 四年级下册数学沪教版4.3 折线统计图的画法(2课时)课件(共29张ppt).pptx
- 二年级下册数学课件-7.2 整理与提高 万以内数的读写及大小比较沪教版 (共14张PPT).ppt
- 数轴的认识与正负数大小比较(课件)五年级下册数学(共20张PPT)沪教版.pptx
- 二年级下册数学课件-3.1 时 分 秒 沪教版 21页.ppt
- 3.2 与世界深度互动 学案课件(共31张PPT) 道德与法治九年级下册.pptx
- 三年级下册数学课件 6.2 长方形、正方形的 周长 沪教版 (26张PPT).ppt
- 三年级下册数学课件-7.4 整理与提高 周长和面积沪教版 (共18张PPT).ppt
- 二年级下册数学课件-7.3 整理与提高 解决问题沪教版 (共14张PPT).pptx
最近下载
- 学前儿童学习与发展核心经验健康领域.pdf
- 新人教版七年级下册英语U4词汇分类循环训练单(学生版).docx
- 2023年下半年教师资格证《高中生物》真题及答案.pdf VIP
- 电子版个人简历模板简历表格 个人简历.docx VIP
- 国家秘密载体印制资质现场审查必威体育官网网址知识测试试题库.pdf VIP
- 2025年新疆乌鲁木齐市高考数学二模试卷(理科)+答案解析(附后).pdf VIP
- 我的家乡黑龙江双鸭山.pptx
- 初级注册安全工程师考试(安全生产法律法规)考点重点资料梳理.pdf VIP
- (最全)山东省2016建筑工程消耗量定额.pdf
- 2025年徐州工业职业技术学院单招职业技能测试题库(历年真题).docx VIP
文档评论(0)