我想将全局变量封装在一个"数据管理器模块"中.访问只能通过函数来避免所有丑陋的全局变量问题......因此内容完全对用户隐藏.有没有现有的概念?这样的实现怎么样?如何将值存储在"数据管理器模块"中?
"数据管理器模块"没有任何意义.实施一个只会扫除地毯下面一个根本糟糕的程序设计,隐藏它而不是实际清理它.全局变量的主要问题不是用户滥用,而是它们在项目中的模块之间创建紧密耦合,使其难以阅读和维护,并且还增加了错误在错误所在的模块外"升级"的可能性.
程序中的每个数据都属于某个模块,其中"模块"由ah文件和相应的c文件组成.称之为模块或类或ADT或任何你喜欢的.常识和OO设计都要求变量需要在它们实际所属的模块中声明,周期.
您可以通过在文件范围内声明变量static然后实现setter/getter函数来实现.这是"穷人的私有封装"而不是线程安全的,但对于嵌入式系统,它在大多数情况下都能正常工作.这是声明此类变量的嵌入式行业事实标准.
或者更高级,您可以通过在ah文件中将结构声明为不完整类型来进行真正的私有封装,并在C文件中定义它.这有时称为"opaque类型",并在对象的基础上提供真正的封装,这意味着您可以声明该类的多个实例.不透明类型也可用于实现继承(尽管以相当繁琐的方式).
| 归档时间: |
|
| 查看次数: |
214 次 |
| 最近记录: |