定義一個工廠類,能夠根據輸入的不一樣返回不一樣類的實例。
定義一個用於建立對象的接口,讓子類決定實例化哪個類,Factory Method使一個類的實例化延遲到了子類。 典型場景:一、日誌記錄器;二、數據庫訪問,當用戶不知道最後系統採用哪一類數據庫,以及數據庫可能有變化時。
提供一個建立一系列相關或相互依賴對象的接口,而無須指定它們的具體類。 具體應用場景: 一、QQ 換皮膚,一整套一塊兒換。 二、生成不一樣操做系統的程序。
具體應用場景:Java 中的 StringBuilder。
保證一個類只有一個實例,並提供一個訪問它的全局訪問點。
用原型實例指定建立對象的種類,而且經過拷貝這些原型來建立新的對象。 具體應用場景:Java 中的 Object clone() 方法。
具體應用場景: 一、美國電器 110V,中國 220V,就要有一個適配器將 110V 轉化爲 220V。 三、在 LINUX 上運行 WINDOWS 程序。 四、Java 中的 jdbc。
詳細信息數據庫
具體應用場景:在 Java AWT 和 SWING 中,對於 Button 和 Checkbox 是樹葉,Container 是樹枝。
具體應用場景:一、Java 中的 String,若是有則返回,若是沒有則建立一個字符串保存在字符串緩存池裏面。 二、數據庫的數據池。
具體應用場景:Java 中的 iterator。
~~~ TODO設計模式
~~~ TODO緩存