Design Pattern Singleton 单一模式
单一模式的几个注意点:
一) 设计单一模式,首先须要把构造函数给私有化了,不让外界訪问,那么外界仅仅能通过提供的函数获取一个新的类。
二) C++的单一模式,记得要在类外初始化一个类,否则或内存出错的。
三) 这个唯一的类必须是要静态的
程序:
#ifndef _SINGLETON_H
#define _SINGLETON_H #include <iostream>
#include <string> 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:"<<jian->getFounder()<<endl; DuGuJiuJian *jian_2 = DuGuJiuJian::getInstance("令狐冲"); cout<<"Founder is:"<<jian_2->getFounder()<<endl; cout<<"令狐冲";
jian_2->poDao();
cout<<"令狐冲";
jian_2->poJian(); cout<<"Founder is:"<<DuGuJiuJian::getInstance()->getFounder()<<endl;
}
#endif
执行:
由于是单一模式,所以仅仅能有一个创始人独孤求败,呵呵,冲哥能够使用,不能是创始人。
当然,本类不是十分完好,比方:还有多线程的时候可能会出问题,内存释放须要处理好,能够使用暂时静态类。
只是这个模式的概念就是这样了。
Design Pattern Singleton 单一模式的更多相关文章
- Design Pattern —— Singleton
Design Pattern —— Singleton 强力推荐枚举和类级内部类方式实现单例模式 单例模式是开发中非常常用的一种模式,简单的说,我们希望一个类永远都只有一个对象. 主要有两个用途: ...
- [Design Pattern] Singleton Pattern 简单案例
Singleton Pattern, 即单例模式,用于获取类的一个对象,该对象在整个应用中是其类的唯一对象.单例模式属于创建类的设计模式. SingleObject 作为单例类,内含了一个静态私有的 ...
- (Design Pattern) Singleton.
Role: The purpose of the Singleton pattern is to ensure that there is only one instance of a class, ...
- 从壹开始 [ Design Pattern ] 之三 ║ 工厂模式 与 小故事
编者按: 定义一个用于创建对象的接口,让子类决定实例化哪一个类.工厂方法使得一个类的实例化延迟到子类. 工厂模式,是迄今为止,使用最多,最广泛的设计模式之一,它的身影几乎出现在每一个框架和个人代码之中 ...
- 设计模式Design Pattern(4) -- 访问者模式
什么是访问者模式? 一个对象有稳定的数据结构,却为不同的访问者提供不同的数据操作,对象提供接收访问者的方法,从而保证数据结构的稳定性和操作的多样性.也可以理解为,封装对象的操作方法,达到不改变对象数据 ...
- 【design pattern】代理模式
前言 设计模式分为三大类: 创建型模式:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式: 结构型模式:适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组合模式.享元模式: 行为型模式 ...
- Mediator Design Pattern 中介者模式
就是设计一个Mediator类,能够处理其它类的关系. Mediator类: 1 拥有其它全部类的实例对象 2 设置一个接口供其它类使用,其它类也拥有一个Mediator类成员,仅仅需调用这个Medi ...
- 简单工厂设计模式(Simple Factory Design Pattern)
[引言]最近在Youtub上面看到一个讲解.net设计模式的视频,其中作者的一个理解让我印象很深刻:所谓的设计模式其实就是运用面向对象编程的思想来解决平时代码中的紧耦合,低扩展的问题.另外一点比较有见 ...
- Scalaz(10)- Monad:就是一种函数式编程模式-a design pattern
Monad typeclass不是一种类型,而是一种程序设计模式(design pattern),是泛函编程中最重要的编程概念,因而很多行内人把FP又称为Monadic Programming.这其中 ...
随机推荐
- Introduction to MWB Minor Mode
Introduction to MWB Minor Mode */--> Table of Contents 1. Introduction 2. Usage 1 Introduction MW ...
- **PHP错误Cannot use object of type stdClass as array in错误的
错误:将PHP对象类型当做了PHP数组 解决方法:用对象操作符-> 今天在PHP输出一个二维数组的时候,出现了“Fatal error: Cannot use object of type s ...
- servlet 学习笔记(二)
---------------------第二讲--------------------------------- 开发servlet有三种方法: 1.实现servlet接口(最原始的) 实现接口的5 ...
- Mybatis入门及Dao开发方式
本节内容: Mybatis介绍 使用jdbc编程问题总结 Mybatis架构 Mybatis入门程序 Dao的开发方式 SqlMapConfig.xml文件说明 一.Mybatis介绍 MyBatis ...
- centos jdk 下载
wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com% ...
- centos6编译安装zabbix3.0和中文支持整理文档
编者按: 最近公司部分业务迁移机房,为了更方便的监控管理主机资源,决定上线zabbix监控平台.运维人员使用2.4版本的进行部署,个人在业余时间尝鲜,使用zabbix3.0进行部署,整理文档如下,仅供 ...
- USACO 5.2 Snail Trails
Snail TrailsAll Ireland Contest Sally Snail likes to stroll on a N x N square grid (1 <n <= 12 ...
- 自动化CI构建工具
hudson/maven jenkins,bamboo, hudson
- HTTP上传大文件的节点配置
<system.web> <compilation debug="true" targetFramework="4.0" /> < ...
- ionic启动App时不使用淡入淡出效果
找到我们项目下面 res下面的config.xml,然后加入下面两句就可以解决. <preference name="FadeSplashScreen" value=&quo ...