2020国产成人精品视频,性做久久久久久久久,亚洲国产成人久久综合一区,亚洲影院天堂中文av色

分享

使用Singleton模式?給我一個理由先!

 grantbb 2005-07-18

Q: 在很多地方我都看到使用了Singleton類。我的問題是:較之一個包含static方法(methds)的類,使用Singleton具有什么優(yōu)點呢?

A: 不使用包含static方法的類而使用Singleton,其區(qū)別在于,后者可以帶來有效的面向對象設計。Singleton通常展示的是一種更清晰的方法。而一個包含static方法的類只不過是函數(shù)或公用子程序(utilities)的簡單羅列。

你會問,羅列一組函數(shù)有什么問題?

很簡單。羅列函數(shù),你就不是在進行面向對象編程;你的工作實際上倒退到了傳統(tǒng)的面向過程的程序設計中。悄然之間,對象不再是程序的焦點,而你自己也陷入到以數(shù)據(jù)為中心的程序設計模式中。換句話說,你不再是向包裝了狀態(tài)和行為的對象發(fā)送消息,而是針對數(shù)據(jù)進行函數(shù)調用。公用子程序必然造成行為和數(shù)據(jù)完全分離,而這一點在面向對象設計中是絕不允許的。

也不是說完全不能使用公用子程序。面向對象的公用子程序確實存在。有時也需要將對象當作數(shù)據(jù)來處理。例如,我曾寫了一套公共子程序,用來將Java對象轉換成相應的CORBA形式。很難將那些方法寫成一個類,因為它們確實沒有狀態(tài)信息;我也不想將轉換代碼嵌入到Java類中。然而,這確實容易帶來混亂。

對于系統(tǒng)中的某個類,如果想讓它無論什么時候只有一個實例存在,這種情況下可以使用Singleton。例如有這樣一個類,它提供對CORBA server的訪問,還要做到負載平衡。這時候就不要使用多個這樣的對象,因為每個對象都會和相同的server打交道。占用冗余資源當然浪費。所以,對server的訪問最好集中到一個實例之中。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多