首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

怎么管理众多的单例指针

2012-06-20 
如何管理众多的单例指针?如何管理众多的指针?我的代码里面,有许多的全程都用到的指针(跟单例指针一样,只有

如何管理众多的单例指针?
如何管理众多的指针?
我的代码里面,有许多的全程都用到的指针(跟单例指针一样,只有一个对象),我用一个类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即可。
[解决办法]
设计模式——单件模式。

热点排行