设为首页 加入收藏

TOP

Design Pattern Singleton 单一模式
2015-07-24 06:51:46 来源: 作者: 【 】 浏览:61
Tags:Design Pattern Singleton 单一 模式

单一模式的几个注意点:

一) 设计单一模式,首先需要把构造函数给私有化了,不让外界访问,那么外界只能通过提供的函数获取一个新的类。

二) C++的单一模式,记得要在类外初始化一个类,否则或内存出错的。

三) 这个唯一的类必须是要静态的


程序:

#ifndef _SINGLETON_H
#define _SINGLETON_H

#include 
  
   
#include 
   
     using namespace std; class DuGuJiuJian { string FounderName; DuGuJiuJian(string name) : FounderName(name) { } ~DuGuJiuJian() { if (Founder) delete Founder; } public: void poJian() { cout<<"破剑式……\n"; } void poDao() { cout<<"破刀式……\n"; } inline static DuGuJiuJian *getInstance(string name = "No Name") { if (!Founder) { Founder = new DuGuJiuJian(name); } return Founder; } string getFounder() { return FounderName; } private: static DuGuJiuJian *Founder; }; DuGuJiuJian *DuGuJiuJian::Founder = nullptr; void SingletonDuGuJiuJian_Run() { DuGuJiuJian *jian = DuGuJiuJian::getInstance("独孤求败"); cout<<"Founder is:"<
    
     getFounder()<
     
      getFounder()<
      
       poDao(); cout<<"令狐冲"; jian_2->poJian(); cout<<"Founder is:"<
       
        getFounder()<
        
         

运行:



因为是单一模式,所以只能有一个创始人独孤求败,呵呵,冲哥可以使用,不能是创始人。


当然,本类不是十分完善,比如:还有多线程的时候可能会出问题,内存释放需要处理好,可以使用临时静态类。

不过这个模式的概念就是这样了。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇LeetCode Search a 2D Matrix 下一篇ZOJ Monthly, June 2014 解题报告

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: