模块 为什么程序开发时一定要使用封装而不能让用户直接访问变量?
为什么程序开发时一定要使用封装而不能让用户直接访问变量?
编程语言有两个极端:一是把用户当成小偷,以“用户一定会犯错”为原则。此时,它将尽可能地封装和限制用户的行为。以Java为代表。其优点是用户门槛较低,因此开发人员可以快速启动现成的代码。缺点是开发效率低。
一是将用户视为上帝,为所欲为。以C/Python为例,甚至可以在Python运行时修改代码本身。其优点是开发效率高,缺点是使用门槛高,容易入坑。当然,因为您有足够的自由,所以您可以人为地设置“约束”,即自封装,这样所有处理您的代码的开发人员都将遵守您的“条约”。
在这两个极端之间也有大量的语言,例如rust。
封装并不意味着“好”或“坏”,它取决于您使用的语言的“最佳实践”。一个好的程序是遵循“最佳实践”并根据实际情况编写的程序。
C语言开发单片机为什么大多数都采用全局变量的形式?
可能您看到的大多数应用程序都比较简单,或者MCU的性能不强。为了减少调用函数导致的性能下降,请使用全局变量
!第一,情况无话可说,问题不大。
第二,也很普遍。我认为这与历史遗留的问题有关。主流MCU上的100m似乎已经存在了大约15年。因此,人们普遍认为单片机的性能较差。每个人都会想到一种提高代码效率的方法。全局变量的广泛使用是应用最广泛和最有效的一种!但这不符合PC应用程序程序员编写的模块化、高内聚、低耦合的方法。不行,功能和性能只能优先考虑
!您是否忽略了由这个全局变量引起的软件风险以及开发和维护困难?当然不是。我们应该严格管理这些全局变量,给每个变量一个明确的定义、类型和函数,这些都应该在文档中明确描述!如果你理解了这样一个文档,你就会理解一半以上的软件功能和框架(可能没有框架),这样开发和维护就可以继续了。
回到现在,MCU的主频超过1GHz。选择200米以上的MCU非常容易,内存为512KB。因此,MCU的全局变量也可以成为历史。让我们拥抱更合适的软件开发思想和方法,模块化和面向对象!
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。