一、什麼是設計模式
在軟件工程中,設計模式(design pattern)是對軟件設計中普遍存在(反覆出現)的各種問題,所提出的解決方案。
這個術語是由埃裏希·伽瑪(Erich Gamma)等人在1990年代從建築設計領域引入到計算機科學的。
《 設計模式:可複用面向對象軟件的基礎》 收錄 23種模式:觀察者模式 、策略模式 、裝飾者模式
、享元模式 、模板方法
*架構模式:MVC、分層;
*設計模式:提煉系統中的組件;
*代碼模式(成例idiom):低層次,與編碼直接相關;如DCL;
二、單例模式
單例對象的類必須保證只有一個實例存在。許多時候整個系統只需要擁有一個的全局對象,這樣有利於我們協調系統整體的行爲。
比如:全局信息配置
幾種實現方式(大概五種):
三、不變模式
一個類的內部狀態創建後,在整個生命期間都不會發生變化時,就是不變類。
不變模式不需要同步。
final;
public final
class Product {
//確保無子類
private
final String no;
//私有屬性,不會被其他對象獲取
private
final String name;
//final保證屬性不會被2次賦值
private
final double price;
public Product(String no, String name, double price){ //在創建對象時,必須指定數據
super();
//因爲創建之後,無法進行修改
this.no = no;
this.name = name;
this.price = price;
}
public String getNo() {
return no;
}
public String getName() {
return name;
}
public double getPrice() {
return price;
}
}
如下類:
java.lang.String
java.lang.Boolean
java.lang.Byte
java.lang.Character
java.lang.Double
java.lang.Float
java.lang.Integer
java.lang.Long
java.lang.Short
四、Future模式
核心思想是異步調用。
*
*
五、生產者消費者模式
生產者-消費者模式是一個經典的多線程設計模式。它爲多線程間的協作提供了良好的解決方案。
在生產者-消費者模式中,通常由兩類線程,即若干個生產者線程和若干個消費者線程。生產者線程負責提交用戶請求,
消費者線程則負責具體處理生產者提交的任務。
生產者和消費者之間則通過共享內存緩衝區進行通信。