成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺談C++設(shè)計(jì)模式之單例模式

開發(fā) 后端
單例模式:保證一個(gè)類僅有一個(gè)實(shí)例,并提供一個(gè)訪問它的全局訪問點(diǎn)。

單例模式:保證一個(gè)類僅有一個(gè)實(shí)例,并提供一個(gè)訪問它的全局訪問點(diǎn)。

  通常我們可以讓一個(gè)全局變量使得一個(gè)對(duì)象被訪問,但它不能防止客戶實(shí)例化多個(gè)對(duì)象,一個(gè)***的辦法就是讓類自身負(fù)責(zé)保護(hù)它的唯一實(shí)例,這個(gè)類可以保證沒有其它實(shí)例可以被創(chuàng)建,并且它可以提供一個(gè)訪問該實(shí)例的方法。

  單例模式因?yàn)镾ingleton類封裝它的唯一實(shí)例,這樣它可以嚴(yán)格控制客戶怎樣訪問它以及何時(shí)訪問它,簡(jiǎn)單地說就是對(duì)唯一實(shí)例的受控訪問。

  實(shí)現(xiàn)原理:將構(gòu)造函數(shù)私有化,只提供一個(gè)靜態(tài)方法來創(chuàng)建一個(gè)對(duì)象。

  (1) 將構(gòu)造函數(shù)設(shè)置成private;

  (2) 聲明一個(gè)靜態(tài)的字段,初始化一個(gè)實(shí)例,返回Singleton對(duì)象;

  (3) 用靜態(tài)方法或靜態(tài)屬性,返回那個(gè)唯一的實(shí)例

  當(dāng)然,在對(duì)象用多線程時(shí),可能會(huì)造成創(chuàng)建多個(gè)實(shí)例,可以給創(chuàng)建對(duì)象的過程加鎖。

  • Singleton:定義一個(gè)Instance操作

  1. class Singleton{ 
  2. public
  3.     static Singleton* Instance(); 
  4. protected
  5.     Singleton(){} 
  6.     Singleton(const Singleton &instance){} 
  7.     Singleton& operator=(const Singleton &instance){} 
  8. private
  9.     static Singleton* instance; 
  10. }; 
  11. Singleton* Singleton::Instance(){ 
  12.     if(instance == 0
  13.         instance = new Singleton; 
  14.     return instance; 
  15. Singleton* Singleton::instance = 0

  其實(shí),單例模式中最關(guān)鍵的就是把public的構(gòu)造函數(shù)私有化。這樣就把構(gòu)造對(duì)象的實(shí)例化的權(quán)利交給了類本身,讓Singleton來控制類的 實(shí)例化。當(dāng)然除了構(gòu)造函數(shù)之外,還需要把類的控制復(fù)制函數(shù)(拷貝構(gòu)造函數(shù),賦值運(yùn)算)私有化,因?yàn)榭蛻舳藳]有構(gòu)造的權(quán)利,所以也就沒有使用控制復(fù)制函數(shù)的 權(quán)利。

責(zé)任編輯:王雪燕 來源: 博客園
相關(guān)推薦

2016-03-28 10:23:11

Android設(shè)計(jì)單例

2022-06-07 08:55:04

Golang單例模式語言

2021-02-01 10:01:58

設(shè)計(jì)模式 Java單例模式

2023-03-21 15:21:52

開發(fā)程序設(shè)計(jì)static

2021-03-02 08:50:31

設(shè)計(jì)單例模式

2010-02-05 17:00:06

C++單例模式

2013-11-26 16:20:26

Android設(shè)計(jì)模式

2010-02-03 09:43:16

C++單例模式

2022-02-06 22:30:36

前端設(shè)計(jì)模式

2010-01-27 10:45:21

C++單例模式

2024-02-04 12:04:17

2020-06-08 08:04:49

設(shè)計(jì)模式結(jié)構(gòu)型接口

2021-09-07 10:44:35

異步單例模式

2009-09-02 16:23:27

C# Singleto

2021-08-11 17:22:11

設(shè)計(jì)模式單例

2023-11-13 16:49:51

C++單例

2022-09-29 08:39:37

架構(gòu)

2022-03-29 07:52:07

設(shè)計(jì)模式單例設(shè)計(jì)模式java

2011-07-21 14:33:02

設(shè)計(jì)模式

2013-03-26 10:35:47

Objective-C單例實(shí)現(xiàn)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 影音先锋中文字幕在线观看 | 欧美日韩综合 | 6996成人影院网在线播放 | 国产精品久久久久久一级毛片 | 久久人爽 | 欧美国产日韩在线 | 九九久久99 | 国产日韩精品视频 | 中文字幕亚洲一区二区va在线 | 久久国产日本 | 一区二区国产精品 | 欧美精品欧美精品系列 | 人人看人人射 | 日本福利在线 | 射欧美| a级片播放 | 欧美二区三区 | 成年人在线观看视频 | 国产精品视频一二三区 | 欧美在线综合 | 亚洲视频在线看 | 精品日韩一区二区 | 日本中文字幕日韩精品免费 | 精品不卡| 日韩在线精品视频 | 中文字幕在线网 | 午夜精品久久久久久久久久久久 | 亚洲天堂中文字幕 | 三级黄色网址 | 成人av在线播放 | 天天天操 | 美女天天干天天操 | 国产一区二区三区色淫影院 | 亚洲精品久久久一区二区三区 | 日韩欧美三区 | 一区二区三区中文字幕 | 91麻豆精品国产91久久久久久 | 成人黄色在线视频 | 午夜专区 | 超碰日本 | 一区二区三区国产精品 |