1.設(shè)計模式的說明:
1.1理解:
設(shè)計模式:是在大量的實踐中總結(jié)和理論化之后,優(yōu)化的代碼結(jié)構(gòu)、編程風(fēng)格、以及解決問題的思考方式。
1.2 常用設(shè)計模式 ---- 23種經(jīng)典的設(shè)計模式 GOF
創(chuàng)建型模式,共5種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。
結(jié)構(gòu)模型,共7種:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。
行為型模式,共11種:策略模式、模板方法模式、觀察者模式、迭代器模式、責(zé)任鏈模式、命令模式、備忘錄模式、狀態(tài)模式、訪問者模式、中介者模式、解釋器模式。
2.單例模式:
2.1 要解決的問題:
所謂類的單例設(shè)計模式,就是采用了一定的方法保證在整個的軟件系統(tǒng)中,對某個類只能存在一個對象實例。
2.2具體代碼的實現(xiàn):
餓漢式1:
class Bank{
//1.私有化類的構(gòu)造器
private Bank(){}
//2.創(chuàng)建內(nèi)部類的對象
//4.要求此對象也必須聲明為靜態(tài)的
private static Bank instance = new Bank();
//3.提供公共的靜態(tài)的方法,返回類的對象
public static Bank getInstance(){
return instance;
}
}
餓漢式2:使用了靜態(tài)代碼塊
class Order {
//1.私有化類的構(gòu)造器
private Order(){}
//2.聲明當(dāng)前類的對象,沒有初始化
//4.此對象也必須聲明為static的
private static Order instance = null;
static{
instance = new Order();
}
//3.聲明public static的返回當(dāng)前類對象的方法
public static Order getInstance(){
return instance;
}
}
懶漢式:
class Order{
//1.私有化類的構(gòu)造器
private Order(){}
//2.聲明當(dāng)前類對象,沒有初始化
//4.此對象也必須聲明為static的
public static Order instance = null;
//3.聲明public、static的返回當(dāng)前類對象的方法
public static Order getInstance(){
if(instance == null){
instance = new Order();
}
return instance;
}
}
2.3兩種方法的對比:
餓漢式:
壞處:對象加載時間過長
好處:餓漢式是線程安全的
懶漢式:
好處:延遲對象的創(chuàng)建。
目前的壞處:線程不安全。----> 到多線程內(nèi)容時,在修改。
本文摘自 :https://www.cnblogs.com/