原创 重學設計模式 - Builder模式

1、意圖 將一個複雜對象的構建與它的表示分離開,使得同樣的構建過程可以創建不同的表示。 2、問題 創建複雜對象的算法應該獨立於該對象的組成部分以及它們的裝配方式。構造過程必須允許被構造的對象有不同的表示。3、解決方案 將複雜對象的構

原创 二維圖形的幾何變換

1、基本幾何變換及變換矩陣 基本幾何變換都是相對於座標原點和座標軸進行的幾何變換,有平移、比例、旋轉、反射和錯切等。 1.1 平移變換 是指將p點沿直線路徑從一個座標位置移到另一個座標位置的重定位過程。他是一種不產生變形而移動物體的剛體變

原创 重學設計模式 - Proxy(代理)模式 - 結構型

1、意圖 爲其他對象提供一種代理以控制對這個對象的訪問2、動機 爲了只有在確實需要這個對象時纔對它進行創建和初始化。提高程序響應速度。 3、適用性 遠程代理(Remote Proxy) 爲一個對象在不同的地址空間提供局部代表。虛代理(V

原创 重學設計模式 - Abstract Factory模式

1、意圖 提供一個創建一系列相關或相互依賴對象的接口,而無需指定它們具體的類。 2、適用性 以下情況可用Abstract Factory 模式: 一個系統要獨立於它的產品的創建、組合和表示時。 一個系統要有多個產品系列中的一個來配

原创 重學設計模式 - Flyweight(享元)模式 - 結構型

1、意圖 運用共享技術有效地支持大量細粒度的對象 2、動機 Flyweight模式描述瞭如何共享對象,使得可以細粒度地使用它們而無需高昂的代價。 3、適用性 Flyweight模式的有效性很大程度上取決於如何使用它以及在何處使用

原创 重學設計模式 - Double-Checked Locking模式

1、  意圖 多線程中,創建線程安全的單件模式。 2、  問題 多線程中,Singleton模式並不總是正常工作的。 3、  解決方案 在檢查到null或實例未創建之後進行“同步”,然後再檢查一次,確保實例尚未創建 4、

原创 重學設計模式 - Template Method模式

1、TemplateMethod模式簡介 Template Method是一個旨在幫助我們在抽象層次從一組不同的步驟中概括出一個通用過程的模式。《設計模式》一書中對Template Method模式的意圖數這樣的:定義一個操作中算法的骨架