繁体   English   中英

C ++微控制器全局类/ Singelton?

[英]c++ microcontroller global classes/singelton?

我目前在微控制器上使用C ++,但遇到一个我不知道正确实现方式的问题:

例如,我正在使用一个串行接口类,该类负责配置串行端口(设置波特,数据位...)。 由于我只想在一开始就在MCU的初始化阶段执行此操作,因此我不知道如何使用类来处理它。

我应该创建一个在初始化阶段创建的全局类/单例(通过这种方式,我可以保留我的串行参数),还是应该在每次需要使用串行接口时创建一个类(但这会重新打开我的串行线-或我应该将构造函数留空)吗?

非常感谢。

我尝试避免全局变量和单例。

我定义了一个类,该类包含一个接受路径名和配置以打开端口的构造函数,以及一个关闭端口的析构函数。 然后,我在main(...)声明了它的static本地实例,并将对它的引用传递给需要使用该端口的其他类的构造函数。

传递引用(而不是声明全局实例或获取单例的全局函数)使我能够为其他类编写单元测试,在这些类中,测试通过引用传递给模拟串行端口对象。

您正在征求意见,因为所有选项均有效。
我确实相信创建一个单例来存储所需的配置和资源是一个好方法。 这样,您可以实现RAII习惯用法,并在需要时轻松访问。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM