<分区>
我有很多使用公共(public)类 (HW_util) 的模块(C++ 类)
HW_util 类实际初始化硬件。
所有模块都使用 HW_util 对象的地址进行初始化。我有 30 多个模块和 30 多行只做初始化的代码,我发现这段代码很难看。 有更好的方法吗?
class HW_Util
{
InitHW();
Functionality1_onHW();
Functionality2_onHW();
..
CleanupHW();
};
class Module1
{
Module1(HW_Util *util) { m_Util = util; }
..
HW_Util *m_Util;
void DoSomething()
{
//uses m_Util to do something
}
};
class Module2
{
Module2(HW_Util *util) { m_Util = util; }
..
HW_Util *m_Util;
void DoSomething()
{
//uses m_Util to do something
}
};
...
//I have around 30 such modules..
...
void main()
{
HW_Util util;
Module1 mod1(&util); //I am passing util to all these modules, and I have around 30 such modules, ugly code
Module1 mod1(&util);
Module3 mod1(&util);
Module4 mod1(&util);
Module5 mod1(&util);
util.InitHW(); //actually fill up the util
mod1.DoSomething();
mod2.DoSomething();
..
util.CleanupHW();
}