我有一个“处理器”类,它需要一些东西:1)访问允许访问数据库的类的实例。2) 访问字符串实用程序类。3) 在运行时从配置文件中读取的超时整数值。
因此,我想将指向前两个的指针作为成员属性,并将一个简单的 int 属性作为第三个。通常,在这种情况下,我只需让构造函数为前两个获取指针,为第三个获取一个 int,然后在正文中,将成员分配给传入的项目。
问题是我将拥有一个包含这个处理器类的 100 个实例的池,我想知道让每个实例包含它自己的 (2) 指针和整数属性是否浪费内存,当所有指针将指向相同的两个对象,并且所有整数将在整个过程的生命周期中保持相同的值。
我熟悉“全局状态不好”的概念,并认为它不鼓励使用静态成员属性。但是在这种情况下,简单地将这三个属性设置为静态不是更有效吗?然后我将创建一个静态“initStaticMembers”方法,该方法接受两个指针和整数,并将静态成员属性分配给传入的项目。initStaticMembers 将在创建处理器实例池之前被调用一次。
我不是最后一部分(静态 initStaticMembers 方法)的超级粉丝......只是看起来不是很优雅,但我看不出明显更好的选择。有人有建议吗?我是否正确地认为使用静态属性可以节省内存而不是为每个处理器类实例提供它自己的一组属性实例?
我还应该注意,所指向的类是线程安全的,所以我认为我不需要关心所有处理器共享一个指向每个处理器的指针。
感谢您的任何反馈。