導航:首頁 > 編程語言 > java設計模式的單例模式

java設計模式的單例模式

發布時間:2022-04-29 05:52:30

java開發什麼情況下使用單例模式

java單例模式確保一個類只有一個實例,自行提供這個實例並向整個系統提供這個實例。
特點:
1,一個類只能有一個實例;
2,自己創建這個實例;
3,整個系統都要使用這個實例。
--------------------------------
Singleton模式主要作用是保證在Java應用程序中,一個類Class只有一個實例存在。在很多操作中,比如建立目錄 資料庫連接都需要這樣的單線程操作。一些資源管理器常常設計成單例模式。
外部資源:譬如每台計算機可以有若干個列印機,但只能有一個Printer Spooler,以避免兩個列印作業同時輸出到列印機中。每台計算機可以有若干個通信埠,系統應當集中管理這些通信埠,以避免一個通信埠被兩個請求同時調用。
內部資源,譬如,大多數的軟體都有一個(甚至多個)屬性文件存放系統配置。這樣的系統應當由一個對象來管理這些屬性文件。
--------------------------------
單例模式,能避免實例重復創建;
單例模式,應用於避免存在多個實例引起程序邏輯錯誤的場合;
單例模式,較節約內存。

❷ Java常用的幾種設計模式

下面給你介紹5種設計模式:

1.單例設計模式

所謂單例設計模式簡單說就是無論程序如何運行,採用單例設計模式的類(Singleton類)永遠只會有一個實例化對象產生。具體實現步驟如下:

(1) 將採用單例設計模式的類的構造方法私有化(採用private修飾)。

(2) 在其內部產生該類的實例化對象,並將其封裝成private static類型。

(3) 定義一個靜態方法返回該類的實例。

2.工廠設計模式

程序在介面和子類之間加入了一個過渡端,通過此過渡端可以動態取得實現了共同介面的子類實例化對象。

3.代理設計模式

指由一個代理主題來操作真實主題,真實主題執行具體的業務操作,而代理主題負責其他相關業務的處理。比如生活中的通過代理訪問網路,客戶通過網路代理連接網路(具體業務),由代理伺服器完成用戶許可權和訪問限制等與上網相關的其他操作(相關業務)。

4.觀察者設計模式

所謂觀察者模式,舉個例子現在許多購房者都密切觀察者房價的變化,當房價變化時,所有購房者都能觀察到,以上的購房者屬於觀察者,這便是觀察者模式。

java中可以藉助Observable類和Observer介面輕松實現以上功能。當然此種模式的實現也不僅僅局限於採用這兩個類。

5.適配器模式

如果一個類要實現一個具有很多抽象方法的介面,但是本身只需要實現介面中的部分方法便可以達成目的,所以此時就需要一個中間的過渡類,但此過渡類又不希望直接使用,所以將此類定義為抽象類最為合適,再讓以後的子類直接繼承該抽象類便可選擇性的覆寫所需要的方法,而此抽象類便是適配器類。

❸ 怎麼使用JAVA單例模式控制配置文件

1)單例模式是設計模式中很經典的模式之一,它的意圖是:確保某一個類只有一個實例,而且自行實例化並向整個系統提供這個實例。通常,這個類稱為單例類。
比如說,一些資源管理器一般做成單例模式。譬如每台計算機可以有若干個列印機,但只能有一個Printer
Spooler(列印機後台處理程序),以避免兩個列印作業同時輸出到列印機中。
一般來說,這個模式有兩種實現方法:
A,餓漢式:(字數限制問題見下·)

❹ 在Java中,單例設計模式是什麼意思有什麼優勢

單例模式:保證一個類在使用過程中,只有一個實例。優勢就是他的作用,這個類永遠只有一個實例。
步驟:
1.
將該類的構造方式私有;
2.
在內部實例化一個該類的實例;
3.
提供介面給外部訪問。
public
class
SingletonDemo
{
private
SingletonDemo
(){};
//
1.
private
static
SingletonDemo
mInstance
=
new
SingletonDemo();
//
2.
public
static
SingletonDemo
getInstance(){
//
3.
return
mInstance;
}
}

❺ java開發在什麼情況下使用單例模式

使用原則如下:

1.單例模式:確保一個類只有一個實例,自行實例化並向系統提供這個實例

2.單例模式分類:餓單例模式(類載入時實例化一個對象給自己的引用),懶單例模式(調用取得實例的方法如getInstance時才會實例化對象)(java中餓單例模式性能優於懶單例模式,c++中一般使用懶單例模式)

❻ java23個設計模式有哪些

一共23種設計模式!
引用《軟體秘笈-設計模式那點事》書籍:
按照目的來分,設計模式可以分為創建型模式、結構型模式和行為型模式。
創建型模式用來處理對象的創建過程;結構型模式用來處理類或者對象的組合;行為型模式用來對類或對象怎樣交互和怎樣分配職責進行描述。
創建型模式用來處理對象的創建過程,主要包含以下5種設計模式:

工廠方法模式(Factory
Method
Pattern)

抽象工廠模式(Abstract
Factory
Pattern)

建造者模式(Builder
Pattern)

原型模式(Prototype
Pattern)

單例模式(Singleton
Pattern)
結構型模式用來處理類或者對象的組合,主要包含以下7種設計模式:

適配器模式(Adapter
Pattern)

橋接模式(Bridge
Pattern)

組合模式(Composite
Pattern)

裝飾者模式(Decorator
Pattern)

外觀模式(Facade
Pattern)

享元模式(Flyweight
Pattern)

代理模式(Proxy
Pattern)
行為型模式用來對類或對象怎樣交互和怎樣分配職責進行描述,主要包含以下11種設計模式:

責任鏈模式(Chain
of
Responsibility
Pattern)

命令模式(Command
Pattern)

解釋器模式(Interpreter
Pattern)

迭代器模式(Iterator
Pattern)

中介者模式(Mediator
Pattern)

備忘錄模式(Memento
Pattern)

觀察者模式(Observer
Pattern)

狀態模式(State
Pattern)

策略模式(Strategy
Pattern)

模板方法模式(Template
Method
Pattern)

訪問者模式(Visitor
Pattern)

❼ java常用的幾種單例模式(懶漢式,餓漢式

單件模式用途:
單件模式屬於工廠模式的特例,只是它不需要輸入參數並且始終返回同一對象的引用。
單件模式能夠保證某一類型對象在系統中的唯一性,即某類在系統中只有一個實例。它的用途十分廣泛,打個比方,我們開發了一個簡單的留言板,用戶的每一次留言都要將留言信息寫入到資料庫中,最直觀的方法是沒次寫入都建立一個資料庫的鏈接。這是個簡單的方法,在不考慮並發的時候這也是個不錯的選擇。但實際上,一個網站是並發的,並且有可能是存在大量並發操作的。如果我們對每次寫入都創建一個資料庫連接,那麼很容易的系統會出現瓶頸,系統的精力將會很多的放在維護鏈接上而非直接查詢操作上。這顯然是不可取的。
如果我們能夠保證系統中自始至終只有唯一一個資料庫連接對象,顯然我們會節省很多內存開銷和cpu利用率。這就是單件模式的用途。當然單件模式不僅僅只用於這樣的情況。在《設計模式:可復用面向對象軟體的基礎》一書中對單件模式的適用性有如下描述:
1、當類只能有一個實例而且客戶可以從一個眾所周知的訪問點訪問它時。
2、當這個唯一實例應該是通過子類化可擴展的,並且客戶應該無需更改代碼就能使用一個擴展的實例時。
下面對單件模式的懶漢式與餓漢式進行簡單介紹:
1、餓漢式:在程序啟動或單件模式類被載入的時候,單件模式實例就已經被創建。
2、懶漢式:當程序第一次訪問單件模式實例時才進行創建。
如何選擇:如果單件模式實例在系統中經常會被用到,餓漢式是一個不錯的選擇。

❽ Java單例模式怎麼用

java模式之單例模式:
單例模式確保一個類只有一個實例,自行提供這個實例並向整個系統提供這個實例。
特點:
1,一個類只能有一個實例
2,自己創建這個實例
3,整個系統都要使用這個實例
例: 在下面的對象圖中,有一個"單例對象",而"客戶甲"、"客戶乙" 和"客戶丙"是單例對象的三個客戶對象。可以看到,所有的客戶對象共享一個單例對象。而且從單例對象到自身的連接線可以看出,單例對象持有對自己的引用。

Singleton模式主要作用是保證在Java應用程序中,一個類Class只有一個實例存在。在很多操作中,比如建立目錄 資料庫連接都需要這樣的單線程操作。一些資源管理器常常設計成單例模式。
外部資源:譬如每台計算機可以有若干個列印機,但只能有一個Printer Spooler,以避免兩個列印作業同時輸出到列印機中。每台計算機可以有若干個通信埠,系統應當集中管理這些通信埠,以避免一個通信埠被兩個請求同時調用。內部資源,譬如,大多數的軟體都有一個(甚至多個)屬性文件存放系統配置。這樣的系統應當由一個對象來管理這些屬性文件。

一個例子:Windows 回收站。
在整個視窗系統中,回收站只能有一個實例,整個系統都使用這個惟一的實例,而且回收站自行提供自己的實例。因此,回收站是單例模式的應用。

兩種形式:
1,餓漢式單例類
public class Singleton {

private Singleton(){}

//在自己內部定義自己一個實例,是不是很奇怪?
//注意這是private 只供內部調用

private static Singleton instance = new Singleton();

//這里提供了一個供外部訪問本class的靜態方法,可以直接訪問
public static Singleton getInstance() {
return instance;
}
}

❾ java單例設計模式

這個類只有一個public許可權的getinstance,因為是static方法,所以可以直接調用該方法,同時靜態屬性是屬於類的,所以保證了該類只有這么一個屬性instance,這個靜態屬性是通過private的構造函數構造出來的,private的構造函數外部不能通過new
來調用,所以就保證了single類的構造函數只執行一次,single類instance有且只有一個,這就是單例模式,如果實在理解不了
,就記住一點,所有的屬性和方法,構造函數
全部都是private的,同時實例屬性是static靜態的。最後提供一個public

get方法對外部開放。

❿ java中幾種設計模式(單例模式,適配器模式

1、單例模式:也分餓漢式單例模式(創建對象)與懶漢式單例模式(未創建對象)

代碼實現:

餓漢式單例模式:

懶漢式單例模式:

2、適配器模式:

介面:

實現介面的類:

閱讀全文

與java設計模式的單例模式相關的資料

熱點內容
數學奇跡神奇運演算法 瀏覽:359
大廠的程序員的水平如何 瀏覽:700
遺傳演算法入門經典書籍 瀏覽:878
源碼炮台腳本 瀏覽:620
在位編輯命令 瀏覽:347
曲式分析基礎教程pdf 瀏覽:14
php生成靜態html頁面 瀏覽:964
怎麼分割pdf 瀏覽:812
壓縮垃圾報警器 瀏覽:629
小公司一般都用什麼伺服器 瀏覽:968
java獲取時間gmt時間 瀏覽:820
為什麼csgo一直連接不到伺服器 瀏覽:504
安卓登ins需要什麼 瀏覽:836
機器人演算法的難點 瀏覽:226
全自動化編程 瀏覽:727
程序員高薪限制 瀏覽:693
壓縮圖片壓縮 瀏覽:75
美國發明解壓魔方 瀏覽:302
電腦怎麼備案網上伺服器 瀏覽:515
旅行商問題Python寫法 瀏覽:953