内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

設(shè)計模式------單利的模式-創(chuàng)新互聯(lián)

單例模式的意思就是只有一個實例。單例模式確保某一個類只有一個實例,而且自行實例化并向整個系統(tǒng)提供這個實例。這個類稱為單例類。

創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),長治企業(yè)網(wǎng)站建設(shè),長治品牌網(wǎng)站建設(shè),網(wǎng)站定制,長治網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,長治網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

1.單例模式的要點:

顯然單例模式的要點有三個;一是某個類只能有一個實例;二是它必須自行創(chuàng)建這個實例;三是它必須自行向整個系統(tǒng)提供這個實例。

2.單例模式的優(yōu)點:

1.實例控制:Singleton 會阻止其他對象實例化其自己的 Singleton 對象的副本,從而確保所有對象都訪問唯一實例。

2.靈活性:因為類控制了實例化過程,所以類可以更加靈活修改實例化過程

單例模式是 iOS 常用設(shè)計模式中的一種. 

單例設(shè)計模式作用:是這個類的一個對象成為系統(tǒng)中的唯一實例,因此 需要一種唯一的方法去創(chuàng)建這個對象并返回這個對象的地址..那么, 我們適合使用單利模式呢?

1、類只能有一個實例,而且必須從一個為人熟知的訪問點對其訪問。2、這個唯一的實例只能通過子類化進(jìn)行擴(kuò)展,而且擴(kuò)展的對象不會破壞客戶端代碼。

那么用Objective-C如何實現(xiàn)單例模式呢?下面我們來新建一個Singleton類,在Singleton.h中實現(xiàn)如下

  1. @interface Singleton : NSObject  
      
    + (Singleton *) sharedInstance;  
      
    @end

在Singleton.m

  1. @implementation Singleton  
      
    static Singleton * sharedSingleton = nil;  
      
    + (Singleton *) sharedInstance  
    {  
        if (sharedSingleton == nil) {  
            sharedSingleton = [[Singleton alloc] init];  
        }  
        return sharedSingleton;  
    }  
      
    @end

這樣就創(chuàng)建一個簡單的單例模式,實際上有一部分程序員也是這樣實現(xiàn)的,但實際上這是一個不“嚴(yán)格”版本,在實際中使用,可能會遇到發(fā)起調(diào)用的對象不能以其他分配方式實例化單例對象,否則,就會創(chuàng)建多個實例。(之前有人和我討論過這個問題,說使用者應(yīng)該嚴(yán)格按照接口來使用,當(dāng)實際上Singleton是一個對象,我們不能保證使用者不會使用其他的方法去創(chuàng)建(比如alloc),這個時候他就會創(chuàng)建多個實例,這樣就會出現(xiàn)這些無法感知的bug)

下面我對Singleton.m的進(jìn)行改進(jìn)

@implementation Singleton  
  
static Singleton * sharedSingleton = nil;  
  
+ (Singleton *) sharedInstance  
{  
    if (sharedSingleton == nil) {  
        sharedSingleton = [[super allocWithZone:NULL] init];  
    }  
    return sharedSingleton;  
}  
  
+ (id) allocWithZone:(struct _NSZone *)zone  
{  
    return [[self sharedInstance] retain];  
}  
  
- (id) copyWithZone:(NSZone *) zone  
{  
    return self;  
}  
  
- (id) retain  
{  
    return self;  
}  
  
- (NSUInteger) retainCount  
{  
    return NSUIntegerMax;  
}  
  
  
- (void) release  
{  
    //  
}  
  
- (id) autorelease  
{  
    return self;  
}  
  
@end
也許你注意到了,我重載了allocWithZone:,保持了從sharedInstance方法返回的單例對象,使用者哪怕使用alloc時也會返回唯一的實例(alloc方法中會先調(diào)用allocWithZone:創(chuàng)建對象)。而retain等內(nèi)存管理的函數(shù)也被重載了,這樣做讓我們有了把Singleton類變得“嚴(yán)格”了。

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務(wù)器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨有T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務(wù)器買多久送多久。

新聞名稱:設(shè)計模式------單利的模式-創(chuàng)新互聯(lián)
標(biāo)題URL:http://www.rwnh.cn/article18/cehcdp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、ChatGPT品牌網(wǎng)站制作關(guān)鍵詞優(yōu)化、App開發(fā)、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)
沅陵县| 赫章县| 滁州市| 上林县| 白朗县| 阳江市| 潍坊市| 竹北市| 黄冈市| 威远县| 岚皋县| 丁青县| 凤山县| 星子县| 芜湖市| 尚志市| 颍上县| 江华| 石景山区| 乐都县| 元江| 东乡族自治县| 当雄县| 泽普县| 莱西市| 陇南市| 吴川市| 车险| 准格尔旗| 敦煌市| 伽师县| 正镶白旗| 高州市| 文山县| 福海县| 潞西市| 莲花县| 从化市| 牙克石市| 保定市| 绥芬河市|