在类之间共享私有数据和方法

Sharing private data and methods between classes

本文关键字:数据 方法 之间 共享      更新时间:2023-10-16

我有一堆用于特定功能的类。用户代码应该只实例化其中一个类,因为其他类都是"帮助者"类。但是,这些帮助程序类确实公开了用户代码可消耗的有用信息。

因此,我可以使用辅助类的构造函数,使其只能从主类访问。

同样,让方法和数据只能从适当的类访问,而不能从"用户代码"访问也是有用的。

到目前为止我想到的解决方案:

将功能的所有类放在一个文件中,并使用"static"创建仅该文件本地的变量。这将起作用,因为只有一个主类和所有"helper"类的实例,但这似乎不是一个"好"的解决方案。

让"辅助类"成为主要类的朋友。这也会起作用,但也会让主类访问助手类中的所有私有数据,这并不理想。

从虚拟基类继承:认为这可能是最好的解决方案。通过"受保护"共享数据,私有数据保持私有,公共数据公开。这个理论还没有突破任何漏洞。需要考虑性能方面,因为这是一个时钟速度为72Mhz的嵌入式系统。

使用组合

继承的类应该只继承功能而不继承状态。受保护的成员/函数可能会将状态逻辑划分为两个单元。我会说使用组合,并通过公共函数访问功能。

重新定义你的类永远不会对你永远不认识的用户有好处,所以我想说不要限制你自己。