原创 工廠模式-Factory Pattern

意圖: 定義一個創建對象的接口,讓其子類自己決定實例化哪一個工廠類,工廠模式使其創建過程延遲到子類進行。 主要解決: 主要解決接口選擇的問題。 何時使用: 我們明確地計劃不同條件下創建不同實例時。 如何解決: 讓其子類實現工廠接口

原创 Java獲取泛型T的類型 T.class

import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; public class Main{ public static void m

原创 單例模式-Singleton Pattern

意圖: 保證一個類僅有一個實例,並提供一個訪問它的全局訪問點。 主要解決: 一個全局使用的類頻繁地創建與銷燬。 何時使用: 當您想控制實例數目,節省系統資源的時候。 如何解決: 判斷系統是否已經有這個單例,如果有則返回,如果沒有則創建。

原创 組合模式-Composite Pattern

意圖: 將對象組合成樹形結構以表示”部分-整體”的層次結構。組合模式使得用戶對單個對象和組合對象的使用具有一致性。 主要解決: 它在我們樹型結構的問題中,模糊了簡單元素和複雜元素的概念,客戶程序可以向處理簡單元素一樣來處理複雜元素,從而使

原创 抽象工廠模式-Abstract Factory Pattern

意圖: 提供一個創建一系列相關或相互依賴對象的接口,而無需指定它們具體的類。 主要解決: 主要解決接口選擇的問題。 何時使用:系統的產品有多於一個的產品族,而系統只消費其中某一族的產品。 如何解決: 在一個產品族裏面,定義多個產品。 關

原创 Gvim中Json格式化--使用Python

之前在網上找的都不能用,最後找到日本原作者的方案,完美解決 _vimrc配置: command! Jsonf :execute '%!python -m json.tool' \ | :execute '%!python -c "imp

原创 建造者模式-Builder Pattern

意圖: 將一個複雜的構建與其表示相分離,使得同樣的構建過程可以創建不同的表示。 主要解決: 主要解決在軟件系統中,有時候面臨着”一個複雜對象”的創建工作,其通常由各個部分的子對象用一定的算法構成;由於需求的變化,這個複雜對象的各個部分經常

原创 適配器模式-Adapter Pattern

意圖: 將一個類的接口轉換成客戶希望的另外一個接口。適配器模式使得原本由於接口不兼容而不能一起工作的那些類可以一起工作。 主要解決: 主要解決在軟件系統中,常常要將一些”現存的對象”放到新的環境中,而新環境要求的接口是現對象不能滿足的。

原创 橋接模式-Bridge Pattern

意圖: 將抽象部分與實現部分分離,使它們都可以獨立的變化。 主要解決: 在有多種可能會變化的情況下,用繼承會造成類爆炸問題,擴展起來不靈活。 何時使用: 實現系統可能有多個角度分類,每一種角度都可能變化。 如何解決: 把這種多角度分類分離

原创 原型模式-Prototype Pattern

意圖: 用原型實例指定創建對象的種類,並且通過拷貝這些原型創建新的對象。 主要解決:在運行期建立和刪除原型。 何時使用: 當一個系統應該獨立於它的產品創建,構成和表示時。 當要實例化的類是在運行時刻指定時,例如,通過動態裝載。 爲了