大虾评论下C语言的面向对象编程(Lw_oopc)实用性
简单介绍(copy的):本文介绍一种轻量级的面向对象的 C 语言编程框架: LW_OOPC 。 LW_OOPC 是
Light-Weight Object-Oriented Programming in(with) C 的缩写,总共一个.h 文件,20 个宏, 约
130 行代码,非常的轻量级,但却很好的支持了很多面向对象的特性,比如继承、多态, 可
以优美的实现面向接口编程。这个框架系由台湾的高焕堂先生以及他的 MISOO 团队首创,
之后由我继续改进优化,最后,经高焕堂同意以 LGPL 协议开源(开源网址参见后文) 。
用 C 语言实现 OO?我没听错吗?这听起来真是太疯狂了! … 大家都知道,C++支持
了面向对象和面向泛型编程,比 C 要更强大些。那么,为什么要在 C 语言中实践面向对象
呢?为什么不直接使用 C++呢?
具体百度关键词:Lw_oopc
各位讨论Lw_oopc在实际项目的实用性。
第一次听说整个儿板凳儿学习 同楼上,看看 学用操作系统,主要目的是简化开发,前提是有好多驱动库。如果仅仅是个核心,没驱动,意思不大,不可能自己移植全部驱动的 看过C++的书,觉得面向对象还真的不错,看看这个怎样。 我觉得那里面的实现对象编程的思路很巧妙
我在想可不可以基于作者的例子,开发自己的通信接口:例如mcu_1与mcu_2通信,应用层只关心驱动层或者系统层上报的数据,而根本不会关心数据是以什么方式,通过哪个接口而获得。那么,我们是否可以将通信接口定义一个抽象类,它负责传递数据。而底层我们就可以定义一些具体的类,例如串口,SPI,I2C等方式实现的具体类。那么我在写应用层时,就可以基于面向对象的架构和思想了。这样就可以利用很多类似C++的操作了。
如果能够真的很好的支持面向对象,光是设计模式的应用就已经很有价值了。至于驱动什么的,对于单片机就不需要了。 大致看了一下,很有意思。但是那个书好像到处都在缺货 学习它的思想还是可以的。一般场合还是不要用。 mcu_lover 发表于 2012-12-3 22:42 static/image/common/back.gif
学习它的思想还是可以的。一般场合还是不要用。
谢谢,提醒....,为什么不要用呢?还请说清楚点,呵呵...{:biggrin:} 附件下载不了
ni有一个软件也是搞这个的 似乎下载不下来 {:smile:}{:smile:}{:smile:}刚刚试了下,可以下载了 不能收藏,发帖标记。 高焕堂有本UML与OOPC嵌入式编程专门讲这个的,CSDN有扫面版的书 做个标记。 lxy1997 发表于 2012-12-7 20:33 static/image/common/back.gif
高焕堂有本UML与OOPC嵌入式编程专门讲这个的,CSDN有扫面版的书
特地去把它找到了。
mcu_lover 发表于 2012-12-3 22:42 static/image/common/back.gif
学习它的思想还是可以的。一般场合还是不要用。
貌似傻孩子极力推荐这种方法啊 eduhf_123 发表于 2012-12-8 14:54 static/image/common/back.gif
特地去把它找到了。
为啥我下载之后这些十份文件都是一样的呢 本帖最后由 eduhf_123 于 2013-2-21 20:05 编辑
七弦桐 发表于 2013-2-21 14:50 static/image/common/back.gif
为啥我下载之后这些十份文件都是一样的呢
WINRAR的“分卷压缩”:
1、在文件齐全的情况下打开任何一个都可以、都是一样的。
2、在文件不全的情况下,将无法打开文件并解压缩。 我到处找这本书。 好厉害。。。 stm32下的lwoopc例子 请问谁有光盘 上传下 谢谢。。 不错,谁能上传光盘就好了 顶起来 xtx8962 发表于 2013-4-18 17:31 static/image/common/back.gif
stm32下的lwoopc例子
(Lw_oopc)实用性 ,后来怎么样啊。 我们项目现在真正做,基于OOPC的思想,用的MCU是STM32,操作系统是RTX,但不。我只是看了这本书,并学习了LW_OOPC的一点思想,我只懂面向对象的一点皮毛而已。整体来说,由于我之前编程都是面向过程的,现在突然转向对象编程,刚开始还是有点不顺手。能够学习对象编程的思想,并运用于实际项目还是挺有好处的。个人意见... 用C语言做面向对象,确实有价值。。这样让我们可以更加容易的去管理系统中,各种外设。。 项目中运用到了LW_oopc的思想的确给我们带来了很多好处,例如该项目是由如此结构组成:主框架+A(功能)+B(可选功能)+C(可选功能)+X(未知功能)。如果把A、B、C、X都抽象为对象的话,那么不管是主框架+A,还是主框架+A+B或者其他配置模式,都能很好的保证主框架的一致性和独立性。同时,如果未来出现了A1功能,那么代替A功能也是很简单的事情,只需要实现并测试A1分具体功能,将它替换掉A就可以了,而不用大刀阔斧的进行系统的测试或者修改。再者,未来如果需要添加一些X功能,只需X满足主框架的接口即可挂载。删除某些功能时,也是简单的进行配置就行了,而不需修改主框架和其他对象。这样的话,这个项目的产品就有比较大的多样性和较长的生命周期了。 {:smile:}看看,C语言面向对象编程很有意思的 还没理解什么是面向对象 谢谢。学多点知识无论如何都是有用的。总有用到的一天。 总的来说,看硬件情况,还是要资源支持,不是所说的只增加几百个字节那么简单,大项目使用的话,思想比较好也可行 刚看完这本书,说实话还是不知道怎么用。习惯了面向对象了,最大的困难就在与如何获取对象,而不再与写程序,书中给的程序都能看懂,没问题。但是轮到自己实际使用的时候,很自然的你就去分析过程是怎么样的,想要抽象出类对象来却是很困难的。可能你在想这些对象的时候,都会认为是浪费时间。 OO和语言无关,用什么思想编程才能决定,很多学过C的人,初学C++/Java的时候还是写的面向过程的程序。 学习了,感谢分享 学习贴,学习下思想。 c oop标记 不错,谢谢奉献。 还不知道什么东西,感觉很厉害,学习。。。 好像 也为了这几句 高调出书,晕倒。。。 确实用OOP写单片机程序可以很优雅,话说MDK和GCC是支持C++的 正在了解OOPC 学习了,谢谢,谢谢共享啊! 个人早年看过这本书,怎么说,感觉就是看起来很好用,但是实际上还是不温不火。老实说,面向对象真正的是思想,而不是形式。讲个例子,MQTT的协议栈的单片机版本,只对外提供序列化和反序列化数据的接口,并不提供实体。而MQTT的C#版本,JAVA版本,是提供了对象集合,实例化之后就可以用了。C语言本身就不是面向对象的语言,但是你发现,MQTT的这个协议栈给你做的其实就是个对象集合,序列化和反序列化的方法让你在构造MQTT客户端实体的时候更加方便也更灵活。 OOPC+UML,包括QP(量子编程)(状态机),包括虚拟总线,这些东西不是新玩意,很多年前就出来了。其不温不火是有原因的。 多谢分享 谢谢分享 https://github.com/Akagi201/lw_oopc
LW_OOPC升级版本发布说明
本人在金永华对于高焕堂的lw_oopc的源码的基础上进行了一些简单的修改和调试. 使得lw_oopc能够用在实际的嵌入式项目中, 作为一个很好的框架传播开来.
主要改进有:
修正了一些小错误, 使得编译通过.
调整了一些宏的位置, 使得配置接口只在lw_oopc.h中.
经过测试可以直接在*nix下编译运行, 删掉多余的VS工程文件.
我的联系方式:
博客: http://akagi201.org
E-mail: akagi201@gmail.com
页:
[1]