原创 適配器模式

定義:將一個類的接口轉換成客戶期望的另一個接口,使原本接口不兼容的類可以一起工作; 類型:結構型; 適用場景: 已經存在的類,他的方法和需求不匹配時(方法結果相同或類似); 不是軟件設計階段考慮的設計模式,是隨着軟件維護,由於不

原创 裝飾者模式

定義:在不改變原有對象的基礎上,將功能附加到該對象,提供了比繼承更有彈性的替代方案(擴展原有對象功能); 類型:結構型; 使用場景:  1、擴展一個類的功能,或給一個類添加附加職責;  2、動態地給一個類添加功能,這些功能可以動態

原创 容器實現單例模式

  容器單例模式使用的是HushMap,作爲緩存使用,線程不安全,但是易於管理,可在合適的場景下使用,具體實現如下: public class ContainerSingleton { private ContainerS

原创 反射攻擊解決方案及原理分析

  反射可以通過修改私有構造器的訪問權限,或者修改單例類的某些屬性值,來獲取新的實例,從而破壞單例模式。 public class Test { public static void main(String[] args)

原创 設計模式(簡單工廠、工廠模式和抽象工廠)

1、簡單工廠 定義:由一個工廠對象決定創建出哪一種產品類的實例。 類型:創見型,但不屬於GOF23種設計模式。 適用場景: 工廠類負責創建的對象比較少; 客戶端(應用層)只知道傳入工廠類的參數,對於如何創建對象(邏輯)不關心;

原创 《碼出高效:Java開發手冊》學習筆記(一)數組與集合

  數組與集合都是用來存儲對象的容器,前者性質單一,方便易用;後者類型安全,功能強大,且兩者之間必然有相互轉化的方式。畢竟他們性格迥異,在轉換過程中,如果不注意轉換背後的實現方式,很容易產生意料之外的問題。轉換分成兩種情況:數組轉集合

原创 Java8新特性:接口的靜態方法和默認方法

1、接口增強 Java 8 對接口做了進一步的增強: 在接口中可以添加使用 default 關鍵字修飾的非抽象方法。即:默認方法(或擴展方法) 接口裏可以聲明靜態方法,並且可以實現。   2、接口的靜態方法 java8中爲接口新增了一項功