族谱网 头条 人物百科

基于原则设计

2020-10-16
出处:族谱网
作者:阿族小谱
浏览:213
转发:0
评论:0
概览Policy的意思是方针,或策略,也就是将原本复杂的系统,拆解成多个独立运作的“策略类别”(policyclass),每一组policyclass都只负责单纯如行为(behavior,method)或结构(structure)的某一方面。Templetes与多重继承(MultipleInheritance)两项技术互补。多重继承由于继承自多组BaseClass,故缺乏型别消息(typeinformation),而Templetes基于型别,拥有丰富的型别消息。多重继承容易扩张,而Templetes的特化(Specialization)不容易扩张。Policy-BasedClassDesign同时使用了Template以及MultipleInheritance两项技术,结合两者的优点。PolicyBasedClass则称为宿主类别(hostclass),只需要切换不同PolicyClas...

概览

Policy的意思是方针,或策略,也就是将原本复杂的系统,拆解成多个独立运作的“策略类别”(policy class),每一组policy class都只负责单纯如行为(behavior, method)或结构(structure)的某一方面。Templetes与多重继承(Multiple Inheritance)两项技术互补。多重继承由于继承自多组 Base Class,故缺乏型别消息(type information),而Templetes基于型别,拥有丰富的型别消息。多重继承容易扩张,而Templetes的特化(Specialization)不容易扩张。Policy-Based Class Design 同时使用了 Template 以及 Multiple Inheritance 两项技术,结合两者的优点。

PolicyBasedClass则称为宿主类别(host class),只需要切换不同 Policy Class,就可以得到不同的需求。Policy不一定要被宿主(host)继承,只需要用委托(delegation)完成这一工作。但policies必须遵守一个隐含的constraint,接口(interface)必须一样,故参数不能有巨大改变。

Policy class有点类似回调函数(callbacks),但不同的是,callback只是一个函数,至于 policy class 则尽可能包含许多的 functions (methods), 有时还会结合状态变量(state variables)与其他各式各样的类型,如嵌套类型(nested types)。

policy 的一个重要的特征是,宿主类别(host class)经常(并不一定要)使用多重继承的机制去使用多个 policy classes. 因此在进行 policy 拆解时,必须要尽可能达成正交分解(Orthogonal Decomposition),policy彼此独立运作,不相互影响。

Template Template Parameter

在 C++ 的Policy-Based Design 中,用来建构 Template 的类别参数(也就是policy class),本身亦可以是一个 Tempate 化的类别,形成所谓的 Template Template Parameter。

如果 Read()、Write() 有各种不同名目的参数时,可以利用 template 的不完全具现化 (Incomplement Instantiation) 特征检实现各个参数不同的成员函数(member function)。在host class中,可以撰写不同参数版本的 Read(...) 函数,这有赖于c++ compiler的协助。

上述的class T即是一个Template Template Parameter,这使得 Policy Class 更具扩充性与弹性,能够处理各种类型的实体(instance)。

示例

下例是 C++ hello world的示例,可以使用各种原则(policies)打印文字。

templateclassHelloWorld:publicoutput_policy,publiclanguage_policy{usingoutput_policy::Print;usinglanguage_policy::Message;public://behaviour methodvoidRun(){//two policy methodsPrint(Message());}};#includeclassHelloWorld_OutputPolicy_WriteToCout{protected:templatevoidPrint(message_typemessage){std::cout<<message<<std::endl;}};#includeclassHelloWorld_LanguagePolicy_English{protected:std::stringMessage(){return"Hello, World!";}};classHelloWorld_LanguagePolicy_German{protected:std::stringMessage(){return"Hallo Welt!";}};intmain(){/* example 1 */typedefHelloWorldmy_hello_world_type;my_hello_world_typehello_world;hello_world.Run();//returns Hello World!/* example 2 * does the same but uses another policy, the language has changed */typedefHelloWorldmy_other_hello_world_type;my_other_hello_world_typehello_world2;hello_world2.Run();//returns Hallo Welt!}

你可以更容易的撰写其他的 Output policy, 单靠你创造更新的Policy class并实现print于其中。


免责声明:以上内容版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。感谢每一位辛勤著写的作者,感谢每一位的分享。

——— 没有了 ———
编辑:阿族小谱
发表评论
写好了,提交
{{item.label}}
{{commentTotal}}条评论
{{item.userName}}
发布时间:{{item.time}}
{{item.content}}
回复
举报
点击加载更多
打赏作者
“感谢您的打赏,我会更努力的创作”
— 请选择您要打赏的金额 —
{{item.label}}
{{item.label}}
打赏成功!
“感谢您的打赏,我会更努力的创作”
返回

更多文章

更多精彩文章
打赏
私信

推荐阅读

· 主题公园之园林小品设计原则
巧于立意园林小品作为主题公园中局部主体景物,和主景既有联系又具有相对独立的意境,它应具有一定的思想内涵,才能产生感染力。突出主题园林小品不仅要在环境中起到美化环境的作用,同时还必须突出自身的主题特色及单体的工艺特色,使其有独特的格调。融于环境园林小品并不是孤立存在的,它必须与一定的环境相融合,既要达到主景和小品的有机结合,又要实现人工与自然的浑然一体。注重体量园林小品作为园林景观的陪衬,一般在体量上力求与环境相适宜。如在主题公园中的大广场上,设巨型灯具,有明灯高照的效果,丽在小林阴曲径旁,只宜设小型园灯,不但体量小,造型更应精致;又如喷泉、花池的体量等,都应根据所处的空间大小确定其相应的体量。因需设计主题公园中的园林小品,绝大多数有实用意义,因此除满足美观效果外,还应符实用功能及技术上的要求。如园林栏杆具有各种使用目的,对于各种园林栏杆的高度也就有不同的要求。这里重点强调的是主题公园的灯光...
· 休闲农庄规划设计原则
休闲农庄是现代旅游业向传统农业延伸的一种表现形式,也是生态旅游的一个重要组成部分。生态旅游是休闲农庄的主要特色,以农业观光为基调,不仅符合由传统观光型向休闲型和特色旅游转变,而且投资小、见效快。目前,众多休闲农庄尚缺乏系统化的规划理论予以科学指导。这也极大的影响了我国休闲农庄的建设水平,更束缚了我国休闲农业快速发展的步伐。农庄的规划原则――生态农庄设计与规划1、农庄的规划理论休闲农庄设计,首先要求有突出的、特色的主题。以鲜明的现代农业特色来展现和规划区域的风貌,并使之与周边旅游风景资源有着明显的差异性,利用原有的人文、自然资源创造出独特的景观形象和游赏魅力。我们设计休闲农庄的主题就是要表达规划设计中的中心思想,这也是我们休闲农庄企业文化的核心。整个休闲农庄规划设计要时刻呼应主题,体现主题,突出主题特色农业文化的内涵。我国休闲农庄的发展规划,我想应该在具有旅游价值的农业资源上如:农产品、农耕...
· 浅析住宅小区绿化设计的原则与设计内容
城市建设中,城市园林绿地规划设计对居民生态环境的改善有很重要的作用。。它不但可以完善投资环境,也可以为居民创造一个自然、轻松、幽雅的生活环境,使居民在紧张的工作、学习之余,将休闲、健身、娱乐有机地结合在一起,既得到精神享受,又可增长科学知识。设计原则――住宅小区绿化设计1.分级设计,使小区绿地系统化,以宅间绿地为分散点,公共绿地为面,道路绿化为面,来覆盖整个小区。2.绿地采用开放式的形式,在有限的空间内,为居民提供一个实用、自然、温馨的休息空间。3.绿化主要以适合本地生长的植物造景为原则,树木搭配原则以乔灌结合,针阔混交,适当点缀化卉及爬藤植物,充分发挥植物的功用,做到春有花、夏有荫、秋有果、冬有绿、四季有景的景观效果。设计内容――住宅小区绿化设计设计中大部分为空间绿地,在规划中重点突出了以人为本,为居民提供一个茶余饭后休憩、健身的地方。整个小区分几个组团,各绿地间采用不同造园手法,中心绿...
· 博物馆建筑设计十大原则
博物馆建筑的总原则是必须满足社会、经济、环境三大效益的需要,因而建筑设计必须符合博物馆工艺设计,并要求做到设计艺术与功能的统一。而博物馆的选址是建筑设计前期工作中的重要环节。博物馆宜在地点适中、交通便利、城市公用设施比较完备的地段,其周围应没有污染源,场地干燥,排水通畅,通风良好。具体有以下十项原则:①符合工艺设计是博物馆建筑设计的根本原则。博物馆在提出建筑设计任务时,必须先期进行博物馆工艺设计的研究。工艺设计重点研究的内容主要是参观路线、内部工作人员行走路线及藏品运送路线三线的合理安排,陈列室、库房及其他业务用房面积的适当分配,文物、标本保护温度、湿度的参数及各项相应的装备、设施等等。②在确定先工艺设计、后建筑设计工作程序的同时,博物馆工作者与建筑师之间应建立密切合作的关系。③建筑方案的确定应该经过科学的严密论证,广泛与博物馆保管人员、陈列、研究人员、宣教工作者、文物保护科技工作者等进行...
· 浅析城市公园规划设计原则
城市公园是与市民休闲、游憩的空间,本文选择城市公园为载体,对于节约型理念在规划设计中的体现展开探讨,以期推动节约型园林在规划设计环节的研究和实践。公园是社会的窗口,,是城市绿化系统的重要组成部分。节约型城市公园建设不仅为公园本身的规划和建造提出更高的理念和技术要求,并能通过这一载体,发挥节约型园林建设的行业示范和公众教育功能,为提高行业及全社会的生态节约意识带来裨益。1.生态优先、节约为重的原则确定生态优先和节约园林理念指导下的科学合理的规划设计思路,提高城市公园规划设计与建造过程中土地、自然及人文景观资源的利用效率,以争取城市公园绿地生态效益最大化为目标,通过城市公园与历史、文化、美学、科技的融合,达到生态效益、社会效益和经济效益的综合最优化。2.因地制宜,功能协调的原则城市公园规划设计应适应当地的自然条件、人文脉络、满足绿地的功能需求、突出景观资源的特点,因地制宜地进行规划布局,优化配...

关于我们

关注族谱网 微信公众号,每日及时查看相关推荐,订阅互动等。

APP下载

下载族谱APP 微信公众号,每日及时查看
扫一扫添加客服微信