單例,單例模式

來源:互聯網
上載者:User

單例,單例模式


#import <Foundation/Foundation.h>/** *  單例, 是iOS中常用的設計模式    也就是該類只有一個執行個體.    使用情境:既可以從前往後傳,也可以從後往前傳. *//** *  以main , default. standard,shared */@interface Singleton : NSObject+ (Singleton *)sharedSingleton;@property (nonatomic, retain) NSString *textFiledText; //儲存第一個介面中輸入框中輸入的文字@property (nonatomic, retain) NSString *secondTextFiledText; //儲存第二個介面中輸入的文字@end@implementation Singleton//聲明為靜態變數,只初始化一次,並且在程式的運行期間空間不會釋放.//對於單例來說,要保證程式的運行期間該對象的空間都不會回收,所以單例會造成記憶體佔用問題.空間得不到及時回收.static Singleton *singleton = nil;+ (Singleton *)sharedSingleton{    //內部建立對象只需要一次    if (singleton == nil) {        singleton = [[Singleton alloc] init];    }    return singleton;}@end




JAVA單例模式有什?

等等 單例模式的倆種方式:
餓漢式
class Singleton {
private static Singleton instance=new Singleton();
private Singleton(){}
static Singleton getInstance() {
return instance;
}
}
懶漢式
class Singleton {
private static Singleton instance=null;
private Singleton(){}
static Singleton getInstance() {
if(instance==null)
instance=new Singleton();
return instance;
}
}
 
C++單例模式

1、構造方法私人

那麼,就意味著,只能在Singleton的成員函數中,才能調用Singleton的建構函式來建立執行個體。在Singleton之外,不能建立Singleton對象的執行個體。

2、代碼中,定義了GetInstance方法,只能通過GetInstance方法來擷取Singleton對象的執行個體,單例就是在GetInstance方法中控制的。

首先,Singleton有一個
static Singleton* instance;//惟一執行個體

Singleton* Singleton::instance=NULL;
在這裡初始化為NULL。

Singleton* Singleton::GetInstance()
{
if(instance == NULL)
{
instance = new Singleton();
}
return instance;
}

上面的函數,就是通過instance來實現單例的。

當第一次調用GetInstance時,instance 為NULL,所以會執行
instance = new Singleton();
把這個建立的執行個體儲存到靜態成員instance,並返回這個指標。

第二次到第N次調用GetInstance時,由於instance不為空白,所以會直接返回instance 。也就是第一次調用GetInstance建立的那個執行個體。

所以這樣就實現了,單一實例。

意思就是說,Singleton對象的執行個體,只會被建立一次,就是說記憶體中,只存在一個Singleton的執行個體,就是所謂,單一實例。
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.