如何管理众多的单例指针?
如何管理众多的指针?
我的代码里面,有许多的全程都用到的指针(跟单例指针一样,只有一个对象),我用一个类AppGlobal来管理这些指针,程序启动的时候,我在入口函数里面创建AppGlobal,并创建其他全程用到的指针,一些指针也可以动态用到的时候在创建,但是全部公共要用到的指针都放在类AppGlobal里面,一些基础的函数,比如字符串比较,字符串拷贝,也放在AppGlobal里面
问题:
我这个类AppGloabl我知道肯定不好,因为里面用到的指针全部都是public的,比如我的代码要用,我就直接调用AppGlobal->指针A,AppGlobal->指针B,类似这样调用,直接将我的代码和AppGlobal耦合了,有什么好的方法更好的去调用我想要用的指针呢?
希望大家不吝解答,谢谢。
[解决办法]
何必用单例指针
单例最好的方式是静态单例
A &A::Instance()
{
static A a;
return a;
}
不用维护单例的释放,也不用保存指针,用的时候直接调用A::Instance()
[解决办法]
一般我们从C的设计角度来讲, 内存和地址是抽象的东西, 这个特性可以用来抽象代码, 形成封装与接口的统一.
一般来说, 一个地址对应一段内存, 同时对应一个释放函数, 这样即可形成统一接口与抽象.
typedef int (*mem_free)(void *mem);
typedef struct mem_control_st {
mem_free free_handler;
void *mem;
}*mem_control_t;
你只要为每一段内存维护好这个结构体就行了,怎么释放内存在创建时注册free_handler即可。
[解决办法]
设计模式——单件模式。