設計模式是為了讓程式,具有更好的
**重用性
可讀性可擴充套件性
可靠性使程式呈現高內聚低耦合
單一職責原則
介面隔離原則
依賴倒轉原則
黎克特制替換原則
開閉原則
迪公尺特法則
合成復用原則
1.餓漢式(靜態常量)
步驟:構造器私有化(防止new)
類的內部建立物件
向外暴露乙個靜態的公共方法
**實現
public class singletontest
}class singleton
// 2.本類內部建立物件例項
private final static singleton instance = new singleton();
// 3.提供乙個共有的靜態方法,返回例項物件
public static singleton getinstance()
}
優缺點
缺點總結
2.餓漢式(靜態**塊)
public class singletontest
}class singleton
// 2.本類內部建立物件例項
private static singleton instance;
static
// 3.提供乙個共有的靜態方法,返回例項物件
public static singleton getinstance()
}
優缺點同上
3.懶漢式(執行緒不安全)
public class singletontest
}class singleton
// 2.提供乙個靜態的公有方法,當時用到該方法時,才去建立instance
public static singleton getinstance()
return instance;
}}
優缺點
缺點結論
4.懶漢式(執行緒安全,同步方法)
class singleton
public static synchroized singleton getinstance()
return instance;
}}
優缺點
5.懶漢式(雙重檢查)
class singleton
public static singleton getinstance()
return instance;}}
return instance;
}}
優缺點
結論*關於volatile關鍵字
volatile關鍵字保證了記憶體可見性的同時,保證了cpu執行時不會進行指令重排,當建立物件時要進行很多步的操作,在執行指令時,程式會優先執行new關鍵字,為物件分配記憶體,然後再進行類的初始化。這樣的話如果有乙個執行緒剛進行完記憶體的分配但未完全對該物件進行初始化,這時另外乙個執行緒訪問第一道if檢查時會返回未初始化完成的物件,從而導致程式的錯誤
6.靜態內部類
class singleton
// 寫乙個靜態內部類該類種有乙個靜態的屬性
private static class singletoninstance
//提供乙個靜態的公有方法,直接返回singleton.instance
public static synchroized singleton getinstance()
}
解釋
優缺點7.列舉
enum singleton
}
優缺點 設計模式隨筆 命令模式
封裝呼叫方法,命令模式能夠把方法呼叫封裝到乙個起來。這樣,命令方法就不用在乎方法內部是做什麼的了,只需要關心封裝的過程,是開還是關閉某些東西。它能做記錄日誌,或者撤銷等。現在我們有乙個需求,就是幫家電廠商設計乙個遙控器,這個遙控器有4個鏈結裝置的開關,和乙個撤銷按鈕。如下圖所示 現在我們看看廠商的家...
隨筆 設計模式 工廠模式
工廠模式和抽象工廠模式是在日常開發中使用非常廣泛的設計模式。主要用於實現將物件的例項化部分取出來,進而優化系統架構,增強系統的擴充套件性。用工廠方法來代替 new 操作 工廠模式包括工廠方法模式和工廠抽象模式 抽象工廠模式是工廠方法模式的擴充套件 1 定義乙個介面來建立物件,讓子類來決定哪些類需要被...
設計模式隨筆一
六個原則 solid single responsibility principle 單一職責原則 介面職責單一,類的設計盡量只有乙個原因引起變化。open closed principle 開閉原則 乙個軟體實體如類 抽象 模組 方法應該對擴充套件開放,對修改關閉。liskov substitut...