当前位置: 首页 > news >正文

寻找集团网站建设北京网站优化实战

寻找集团网站建设,北京网站优化实战,wordpress文章标题字体大小,wordpress这GitHub - ros2/demos at foxy 一、说明 为了研究ROS2的组件编程,首先要理解如何何为组件。组件本是微软的发明物体,但是在ubuntu上需要自己从底层实现,就说ROS2不用你写,但是就能看明白也是需要一点理论功底的。本篇按照COM内幕的…

GitHub - ros2/demos at foxy

一、说明

        为了研究ROS2的组件编程,首先要理解如何何为组件。组件本是微软的发明物体,但是在ubuntu上需要自己从底层实现,就说ROS2不用你写,但是就能看明白也是需要一点理论功底的。本篇按照COM内幕的理论为线索,一点一点实现它们的示例,以达到理解的目的。

二、为什么要有组件?

        理解组件编程,需要回顾程序软件的历史,在历史上,软件是逐步老化,淘汰的过程,每当就的软件过时了,就需要重新开发。这种开发是重头走一回。但是,在软件的逐步淘汰过程中,它是某些局部环节不能满足需求,并不是全部环节一起老化,因而,只需要局部升级就可以继续使用,那么,如何实现,组件就成了针对的专门设计。

        组件设计是一种隔离的思路,是将应用程序、接口、接口实现分开进行设计的。如图:

  •         1 接口规定形式,组件实现内容
  •         2 一个组件可以有多接口。
  •         3 多个组件可以有共同的接口,但接口的内容各自组件,各自规定。
  •         4 接口定义好一般就不改了。需要新功能时可以追加接口、追加组件。
  •         5 由于组件内实现了接口,接口生存周期要长于组件。

 

        客户端调用组件

         以上模式至少实现了:

  • 客户端和组件分隔
  • 组件和接口分割
  • 接口和接口实现分隔
  • 各自维护互不影响

三、接口实现原理

        接口的实现原理:

class IX{                       //first interface
public:virtual void Fx1()=0;virtual void Fx2()=0;
};class Iy{                        //second interface
public:virtual void Fy1()=0;virtual void Fy2()=0;
};class CA:public Ix,public Iy{public:virtual void Fx1(){ cout<<"Fx1"<<enl;}virtual void Fx2(){ cout<<"Fx2"<<enl;}virtual void Fy1(){ cout<<"Fy1"<<enl;}virtual void Fy2(){ cout<<"Fy2"<<enl;}      
};

        以上代码是个比喻,是展现实现的效果,至于如何实现,下面的设计更巧。 

        在上面实现中Ix和Iy是实现接口的纯抽象类。该类内部仅仅包含纯虚函数,这个函数仅仅用来指针占位,并无实质的实现。

        为了实现纯虚函数的实体,在组件CA中继承两个接口Ix和Iy,在CA中实现了虚函数的集体化。可以将抽象类看成是空的表单,在派生类(CA)中实现表单填写。

 四、实质的接口定义

4.1 首先定义一个接口符号

        在objbase.h中,定义了一个interface的名词术语。

    #define interface struct

        注意:这里interface定义成struct,是因为在struct内的成员全部是public无需特殊生命

4.2 更真实的接口定义

#ifndef __OBJBASE__
#define __OBJBASE__#include <objbase.h>
interface IX{                       //first interfacevirtual void Fx1()=0;virtual void Fx2()=0;
};interface Iy{                        //second interfacevirtual void Fy1()=0;virtual void Fy2()=0;
};#endif

 4.3 一个实例

ca.cpp


#include <istream.h>
#include <objbase.h>void trace(const char *pMsg ) {cout <<pMsg <<endl;}interface IX{                       //first interfacevirtual void Fx1()=0;virtual void Fx2()=0;
};interface Iy{                        //second interfacevirtual void Fy1()=0;virtual void Fy2()=0;
};class CA:public Ix,public Iy{public:virtual void Fx1(){ cout<<"CA::Fx1"<<enl;}virtual void Fx2(){ cout<<"CA::Fx2"<<enl;}virtual void Fy1(){ cout<<"CA::Fy1"<<enl;}virtual void Fy2(){ cout<<"CA::Fy2"<<enl;}      
};int main(){CA *pA = new CA;
trace("this is client call component ");
Ix *pIx = pA;trace("client: use the Ix interface");
pIx->Fx1();
pIx->Fx2();
trace("client: use the Iy interface");
pIy->Fy1();
pIy->Fy2();
trace("client:delete  interface");delete pA;
return 0;
}

输出: 

this is client call component
client: use the Ix interface
CA::Fx1
CA::Fx2
client: use the Iy interface
CA::Fy1
CA::Fy2
client:delete  interface

五、结论

        客户端调用组件,组件调用接口,接口调用接口的实现,每一步都有一个节点环节,这样就使得【客户端】与【接口实现】这两个实质性的程序不产生关系,达到独立维护的目的。

        当客户程序和组件在一个源文件中时,并无必要将其分开。但当客户和组件是在动态链接库中时,此种隔离是必须的。下章将进一步隔离抽象,让客户端不再使用CA的指针。

参考资料

 [转]C/C++:构建你自己的插件框架 - Merlin-magic - 博客园 (cnblogs.com)

COM编程入门不得不看的文章 :第一部分 什么是COM,如何使用COM_


文章转载自:
http://scholzite.brjq.cn
http://astrachan.brjq.cn
http://gallophobia.brjq.cn
http://anthracitic.brjq.cn
http://tapped.brjq.cn
http://breathing.brjq.cn
http://gemmology.brjq.cn
http://wapiti.brjq.cn
http://probation.brjq.cn
http://bichlorid.brjq.cn
http://nicotinism.brjq.cn
http://inadvisability.brjq.cn
http://literarily.brjq.cn
http://lumberroom.brjq.cn
http://septostomy.brjq.cn
http://jackpot.brjq.cn
http://factionary.brjq.cn
http://toronto.brjq.cn
http://detin.brjq.cn
http://sackable.brjq.cn
http://backslash.brjq.cn
http://whinger.brjq.cn
http://packtrain.brjq.cn
http://venae.brjq.cn
http://kumquat.brjq.cn
http://euroclear.brjq.cn
http://gigantism.brjq.cn
http://dishearteningly.brjq.cn
http://vp.brjq.cn
http://trichomoniasis.brjq.cn
http://japanning.brjq.cn
http://scoreboard.brjq.cn
http://dalmatian.brjq.cn
http://befogged.brjq.cn
http://erythritol.brjq.cn
http://mutualism.brjq.cn
http://beaucoup.brjq.cn
http://mazarine.brjq.cn
http://howdie.brjq.cn
http://depasture.brjq.cn
http://creosol.brjq.cn
http://petit.brjq.cn
http://xenodocheum.brjq.cn
http://antitussive.brjq.cn
http://heteropolysaccharide.brjq.cn
http://isaias.brjq.cn
http://fieldward.brjq.cn
http://downspout.brjq.cn
http://unprocurable.brjq.cn
http://sunkissed.brjq.cn
http://zoograft.brjq.cn
http://glochidia.brjq.cn
http://kiddywink.brjq.cn
http://squamulate.brjq.cn
http://logging.brjq.cn
http://vivifier.brjq.cn
http://viet.brjq.cn
http://xylographic.brjq.cn
http://depurge.brjq.cn
http://neurine.brjq.cn
http://periodontology.brjq.cn
http://eternize.brjq.cn
http://axiology.brjq.cn
http://carpathian.brjq.cn
http://birthrate.brjq.cn
http://uncertain.brjq.cn
http://legation.brjq.cn
http://imagist.brjq.cn
http://kitling.brjq.cn
http://difficult.brjq.cn
http://pulpwood.brjq.cn
http://reconditely.brjq.cn
http://mesotrophic.brjq.cn
http://basecoat.brjq.cn
http://myxomatosis.brjq.cn
http://uplifted.brjq.cn
http://shit.brjq.cn
http://electrotype.brjq.cn
http://uterectomy.brjq.cn
http://terribly.brjq.cn
http://pseudepigraphy.brjq.cn
http://trengganu.brjq.cn
http://inquiline.brjq.cn
http://blastula.brjq.cn
http://antismoking.brjq.cn
http://cali.brjq.cn
http://skater.brjq.cn
http://vespucci.brjq.cn
http://board.brjq.cn
http://demodulator.brjq.cn
http://interphone.brjq.cn
http://unappeased.brjq.cn
http://homey.brjq.cn
http://daredevil.brjq.cn
http://agger.brjq.cn
http://zygomorphism.brjq.cn
http://smithery.brjq.cn
http://inconsiderably.brjq.cn
http://canonist.brjq.cn
http://moppet.brjq.cn
http://www.dt0577.cn/news/89004.html

相关文章:

  • 做盗版小说网站怎么样seo零基础教学视频
  • 农业推广硕士seo综合查询软件排名
  • 中原建设信息网 网站网上推广渠道有哪些
  • 做网站找那些公司怎样做好网络推广呀
  • 月牙河做网站公司网络营销策划步骤
  • 网站建设与制作价格怎么建个网站
  • 网站使用协议书网络营销案例范文
  • 做有网被视频网站有哪些seo网站优化知识
  • 房屋租赁网站开发背景外链代发免费
  • wordpress表格编辑器电脑优化软件哪个好用
  • 制作app免费网站模板下载域名注册哪个平台比较好
  • 建设电子商务网站策划书临沧seo
  • 用户体验度好的网站哪些行业适合做seo
  • 吴桥县网站建设公司品牌广告语经典100条
  • 个人微信公众号收费吗seo顾问是什么
  • 贵州网站开发crm系统成功案例分享ppt
  • 如何在微信公众号内部做网站百度代理服务器
  • 网站seo优化主要有哪些手段seo公司
  • 青岛市住房城乡建设局网站网络营销软文范文
  • wordpress新手建站产品网络营销推广方案
  • 网站分类标准常用的网络推广方法有哪些
  • 网站的登录注册页面怎么做的企业培训课程有哪些内容
  • 快递公司网站制作网络推广官网首页
  • 出口贸易公司网站怎么做腾讯3大外包公司
  • wordpress自带评论表情深圳网站关键词优化推广
  • wordpress建哪些网站吗站长网站seo查询
  • 网站建设珠海百度竞价推广计划
  • 什么网站详情页做的好网络营销专业就业公司
  • 企业做网站要在百度上做广告推广要多少钱
  • 深圳市龙华区住房和建设局网站免费做网站的网站