設(shè)計(jì)模式

1、單例模式

單例模式的六種方式
https://www.cnblogs.com/z00377750/p/9136821.html
餓漢式,在類加載的時(shí)候生成實(shí)例,需要實(shí)例的時(shí)候可以直接提供(像個(gè)急切的餓漢)。但是這個(gè)實(shí)例可能并不會(huì)用到,類加載的時(shí)候?qū)嵗惋@得沒有必要。解決方式有兩種:第一種是使用靜態(tài)內(nèi)部類的形式。第二種是使用懶漢式。懶漢式可能會(huì)有線程安全問題,于是產(chǎn)生了雙重檢測機(jī)制(DCL)的懶漢式。
單例模式的破壞
https://blog.csdn.net/hqy1719239337/article/details/83028387
防止序列化和反序列化時(shí)破壞:
在Singleton中定義readResolve方法,并在該方法中指定要返回的對(duì)象的生成策略

private Object readResolve(){
        return instance;
    }

防止反射破壞:
在構(gòu)造方法中增加判斷

private Singleton() {
if (null != SingletonClassInstance.instance)
  throw new RuntimeException();
}

或者

private Singleton(){
        if(flag){
            flag=false;
        }
        else {
            throw new RuntimeException("單例模式遇到攻擊,第二個(gè)對(duì)象未創(chuàng)建成功");
        }   
    }

2、命令模式

結(jié)合Hystrix中的應(yīng)用

3、策略模式

結(jié)合線程池的拒絕策略

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容