博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面向对象的设计思想
阅读量:7120 次
发布时间:2019-06-28

本文共 613 字,大约阅读时间需要 2 分钟。

hot3.png

博主之间是做 Linux  C++ 软件开发的,深刻地领悟到了面向对象的设计思想。但新的工作岗位是做嵌入式开发的,用的是C语言,突然有一点不太习惯。

C语言是一种面向过程的语言,它本身不像C++具备面向对象的功能,但是这不等于说C就不能写出面向对象的软件。

博主看过许多比较出名的开源软件,如:dbus, avahi, cunit,虽然它们都是用C语言来实现的,但它们都融入了面向对象的设计思想,到处都是面对象的影子。


dbus 中的 DBusString 对象就类似于 C++中的 std::string

235307_bQFm_243525.png

上面的这些函数就相当于 DBusString 的成员函数,每个函数的第一个参数传入的都是 DBusString*,这就相当于C++中的this指针。

再如 avahi 中的 AvahiHashmap 对象:

235708_cknA_243525.png

还有今天博主才研究一下下的 cunit,代码就不贴了。博主整理 TestDB.h 文件,画了如下的UML类图: 

000213_jaAY_243525.png

它定义了 CU_TestRegistry, CU_Suite, CU_Test 三个类,每个类都有对应的成员函数。

可见,它是严格遵循了面向对象的设计思想的。


面向对象是一种设计的思想,与具体实现的语言工具无关。能让软件架构更符合人的思维模式,更为清晰明了,更易于理解与维护。

这是大型软件必然的选择。

转载于:https://my.oschina.net/hevakelcj/blog/501010

你可能感兴趣的文章
POJ 3126
查看>>
Unity 3D中 Ulua-UGUI简单的Demo——热更新的具体流程、使用说明
查看>>
第十章:基本数据结构(2)
查看>>
php处理管道文件流
查看>>
Centos 6 搭建安装 Gitlab
查看>>
2012.02.13(rtsp)
查看>>
关于设置安卓屏幕的显示方向
查看>>
面试题10-二进制中1的个数
查看>>
cmd 查看域名对应的 IP
查看>>
LeetCode – Refresh – Remove Element
查看>>
MFC入门示例之静态文本框、编辑框
查看>>
Codeforces 509C Sums of Digits
查看>>
兔子的区间密码
查看>>
洛谷 P3745 [六省联考2017]期末考试
查看>>
有关接口和抽象类的问题
查看>>
网页上无缝滚动的实现
查看>>
P3301 [SDOI2013]方程
查看>>
js apply/call/caller/callee/bind使用方法与区别分析
查看>>
总结30个CSS3选择器(转载)
查看>>
LED流水灯程序——小白的单片机笔记
查看>>