JavaSE之設計模式
阿新 • • 發佈:2022-04-04
致命三連
-
什麼是:是前輩對程式碼開發經驗的總結是解決一系列問題的套路。是一套用來提高程式碼複用性,可維護性,可讀性,穩健性以及安全性的解決方案。
類與類之間的關係
繼承關係(extends)
繼承指的是一個類(稱為子類、子介面)繼承另外的一個類(稱為父類、父介面)的功能,並可以增加它自己的新功能的能力。
實現關係
依賴關係
就是一個類A可能會用到另一個類B,所以將類B作為類A的引數傳入到類A,這個可能具有偶然性,臨時性,非常弱的關係
關聯關係
兩個類之間語義級別相同,是一種強依賴關係。他是長期性的,是平等的關係
-
聚合關係:has-a關係,關聯關係中的一種,是部分與整體的關係。兩類之間有各自的宣告週期。當整體不存在在時,部分還存在。
-
組合關係:cintains-a關係,關聯關係的特例,比聚合關係更強,同樣體現部分與整體,可兩類之間的生命週期相等,一個不存在另一個也將不存在。
單例模式
致命三連
-
什麼是:為了節省記憶體資源,保證資料內容的一致性,對某個類要求只能建立一個例項
分類
-
懶漢式:在呼叫功能時就建立,執行緒不安全|不同步
建立步驟
-
私有的靜態的該類的引用
-
構造器私有化
-
公共的靜態的訪問方式,為了保證多個執行緒同時載入執行緒安全要在方法名上加synchronized鎖住該方法。
-
-
餓漢式:在類載入完成之後就建立物件,執行緒安全|同步 建立步驟
-
私有的靜態的該類的引用
-
構造器私有化
-
公共的靜態的訪問方式(newInstance)
-
代理模式
致命三連
分類
-
靜態代理
-
代理與真實角色實現相同介面
-
代理角色持真實角色引用
-
代理行為
-
-
動態代理
簡單工廠模式
-
抽象產品角色
-
具體產品角色
-
工廠角色
注意:字串比較是否相等需要使用equals方法進行比較字串的內容,建議常量放在.的前面,避免空指標異常的出現