rtt的IO设备框架面向对象学习-oopc实现特点

网上oopc实现方式都能搜得到,如oopc参考文章,rtt的oopc也是基本一样:
(1)定义类都用struct——这一过程就是抽象封装的过程,把属性和方法封装到struct里面,方法用函数指针变量表示,其他作为属性。
(2)继承的实现都是结构体套结构体,且父类都是放在子类结构体的首位成员。
(3)每定义一类,都要编写该类对应的构造函数(初始化函数),析构函数可以没有(反初始化函数)。
(4)子类构造函数里重写父类方法。如何实现?通过给父类方法赋值的方式。

这样就实现了面向对象的抽象、封装、继承、多态的特性。

为什么要这么做呢?这样的好处是什么?这样遵循了对内封闭,对外开放的软件设计原则(设计模式就是这么来的)。简单点来说,扩展性好(如搭积木似的),好管理,稳定性强。

rtt的类的构造流程

rtt的设备构造流程一般是由设备驱动层发起的——因为其加入了自动初始化机制,rtt系统起来的时候自动调用它。

构造一般流程:
设备驱动层构造函数->设备驱动框架层构造函数->设备基类构造函数->rtt基类构造函数

这么来看是子类构造函数调用父类构造函数。但是从其函数返回来看是先执行父类构造函数再执行子类构造函数的。

此构造流程的完成意味着把驱动层的对象放到了rtt的对象容器里了,然后应用程序就可以根据名字来获取到该对象的地址,意味着可以使用其设备能力。

可扩展性强

新增一个子类只需编写该子类的构造函数即可,在其构造函数里调用父类构造函数就行,新的子类和父类是无关的,是解藕的。这样复用父类的构造函数和结构体,稳定性大增。

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值