[瞎掰]单实例的应用

之前在其它的项目看到过单实例的应用,当时不以为然,只觉得是个小技巧而已。

在项目中发现需要用到,查看资料,才发现是设计模式的一种。

以下为对此的瞎掰,挖坑。。。

需求描述:

在项目中实现网络的自发现后,需要维护起一段数据用来存放从网络获取的IP地址以及设备的网络别名。

因为每次都要重新获取,故不使用数据库的形式,单纯的用网络类的私有变量来存放。

在界面中,需要将获取的IP数据以表格形式描述,但在类外访问数据时,遇到问题。

即每次访问时都应该为同一个类的数据,但在调用时又获取不到类的实例。

故想到让整个类在全局环境中都只存在一个唯一实例,这样就可以随时获取实例进行类的调用。

class Net
{
public:
    static Net *getInstance();
pravite:
    static Net *instance; 
};

static Net *Net::getInstance()
{
    if(instance == NULL)
    {
        instance = new Net;
        return instance;
    }
    return instance;
}

用一个静态私有变量 instance来表示唯一的实例

在每次获取实例的时候,先判断实例是否为空,如果是,表示还未创建,则创建后再返回

如果不为空,表示已经创建,直接返回

这里用到的C++静态成员变量的性质,即类的静态成员变量是所有实例共用的

挖坑到此,想到继续填。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值