面向对象的设计思想

简介:

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

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

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


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


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

再如 avahi 中的 AvahiHashmap 对象:

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

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

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



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

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

目录
相关文章
|
7月前
|
关系型数据库 数据库连接 开发者
面向对象设计原则与实践
面向对象设计原则与实践
|
设计模式 算法 关系型数据库
设计模式——设计模式简介、分类及面向对象设计原则
23 种设计模式中有些模式今天已经不流行了,有些模型已经被语言机制替代了,有些模式你可能常常会忘记,但这些都不重要,重要的是设计原则,因为有了这些设计原则,你有可能发明自己的模式,你也可以理解未来千千万万其他领域的模式。
113 1
C++面向对象的概念和特点
C++面向对象的概念和特点
面向对象概念
1. Coad和Yourdon给出了一个定义:面向对象=对象+类+继承+通信 2. 如果一个软件系统使用这样4个概念设计和实现,则我们认为这个软件系统是面向对象的 什么是对象(object)
105 0
|
设计模式 算法 Go
Go语言实现设计模式之外观模式
外观模式是一种常用的设计模式,它提供了一个统一的接口,用于访问子系统中的一组接口。本文将详细介绍外观模式的概念和原理,并使用Go语言实现一个示例,以帮助读者更好地理解该设计模式的应用。
125 0
|
设计模式 资源调度 前端开发
设计模式 面向对象(1)
设计模式 面向对象(1)
152 0
|
设计模式 Java 开发者
|
前端开发 PHP
如何理解面向对象OOP设计理念
将一个类的使用和实现分开,只保留部分接口和方法与外部联系,或者说只公开了一些供开发人员使用的方法。于是开发人员只 需要关注这个类如何使用,而不用去关心其具体的实现过程,这样就能实现MVC分工合作,也能有效避免程序间相互依赖,实现代码模块间松藕合。
247 0
|
设计模式 Java 编译器
面向对象的设计原则你不要了解一下么?
之前我们看了单一职责原则和开闭原则,今天我们再来看里式替换原则和依赖倒置原则,千万别小看这些设计原则,他在设计模式中会有很多体现,所以理解好设计原则之后,那么设计模式,也会让你更加的好理解一点。
面向对象的设计原则你不要了解一下么?
|
存储 设计模式 PHP
设计模式及面向对象高级特性(下)
今日目标 能够掌握面向对象的高级特性 能够具备设计纯面向对象框架和系统的能力 能够遵循PSR-0规范开发一个基础框架 能够掌握单例模式 能够掌握工厂模式 能够掌握注册树模式