single模式必須滿足的條件:
1.確保任何情況下都絕對只有1個例項
2.在程式上表現出「只存在乙個例項」
示例程式:
singleton類:
package singleton;
//單例模式
public
class singleton
//提供給外界用來獲取例項的介面方法,static確保只能獲取到乙個且唯一乙個例項
public
static singleton getinstance()
}
main類:
package singleton;
public
class main else
system.out.println("end.");}}
singleton類定義了static欄位(類的成員變數)singleton,並將其初始化為singleton類的例項。初始化行為僅在該類被載入時進行一次。
singleton類的建構函式是private的,這是為了禁止從singleton類外部呼叫建構函式。singleton模式的作用在於可以確保任何情況下都只能生成乙個例項。為了達到這個目的,必須設定建構函式為private。
程式執行後,在第一次呼叫getinstance方法時,singleton類會被初始化,也就是這個時候。static欄位singleton被初始化,生成了唯一的乙個例項。
習題:
ticketmaker類:
package singleticket;
public
class
ticketmaker
//公共的靜態的介面方法
public
static ticketmaker getinstance()
//synchronized,適用於多執行緒
public
synchronized
intgetnextnumber()
}
main類:
package singleticket;
public
class main
system.out.println("end...");}}
設計模式 設計模式
物件導向程式設計 oop 的基本概念有 封裝,抽象,繼承,多型等,如何開發出可復用的物件導向軟體一直困擾著軟體開發人員。可復用的物件導向技術包括類的繼承,物件的組合和引數化型別 generic gof的巨著 設計模式 總結出可復用的物件導向的23個設計模式,並且歸類成 建立型模式,結構型模式和行為型...
設計模式 命令設計模式
一句話總結 命令設計模式的實質是將命令定義,命令的執行分離開,從而提公升了系統的解藕性 結構 命令的抽象command 命令的具體實現concretecommand 命令處理者抽象ireceiver 命令處理者的具體實現concretereceiver 命令的呼叫者invoker 客戶端client...
設計模式 9 設計模式
文章 head first 第一章 head first 設計模式讀書筆記 1 策略模式 觀察者模式 head first設計模式學習2 裝飾者模式 head first 設計模式3 工廠模式 head first設計模式4 命令模式 head first 設計模式5 介面卡模式和外觀模式 head...