原创 二十三種設計模式之創建型模式之建造者模式

建造者模式 概述 將一個複雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。 適用性 1.當創建複雜對象的算法應該獨立於該對象的組成部分以及它們的裝配方式時。 2.當構造過程必須允許被構造的對象有不同的表示

原创 二十三種設計模式之創建型模式之單態模式

單態模式 概述 保證一個類僅有一個實例,並提供一個訪問它的全局訪問點。 適用性 1.當類只能有一個實例而且客戶可以從一個衆所周知的訪問點訪問它時。 2.當這個唯一實例應該是通過子類化可擴展的,並且客戶應該無需更改代碼就能使

原创 二十三種設計模式之結構型模式之代理模式

代理模式 概述 爲其他對象提供一種代理以控制對這個對象的訪問。 適用性 1.遠程代理(RemoteProxy)爲一個對象在不同的地址空間提供局部代表。 2.虛代理(VirtualProxy)根據需要創建開銷很大的對象。

原创 二十三種設計模式之行爲型模式之解釋器模式

解釋器模式 概述 給定一個語言,定義它的文法的一種表示,並定義一個解釋器,這個解釋器使用該表示來解釋語言中的句子。 適用性 當有一個語言需要解釋執行,並且你可將該語言中的句子表示爲一個抽象語法樹時,可使 用解釋器模式。而當存

原创 二十三種設計模式之行爲型模式之策略模式

策略模式 概述 定義一系列的算法,把它們一個個封裝起來,並且使它們可相互替換。本模式 使得算法可獨立於使用它的客戶而變化。 適用性 1.許多相關的類僅僅是行爲有異。“策略”提供了一種用多個行爲中的一 個行爲來

原创 二十三種設計模式之創建型模式之抽象工廠

抽象工廠 概述 提供一個創建一系列相關或相互依賴對象的接口,而無需指定它們具體的類。 適用性 1.一個系統要獨立於它的產品的創建、組合和表示時。 2.一個系統要由多個產品系列中的一個來配置時。 3.當你要強調一系列相關的

原创 二十三種設計模式之結構型模式之裝飾模式

裝飾模式 概述 動態地給一個對象添加一些額外的職責。就增加功能來說,Decorator模式相比生成子類更爲靈活。 適用性 1.在不影響其他對象的情況下,以動態、透明的方式給單個對象添加職責。 2.處理那些可以撤消的職責。

原创 二十三種設計模式之結構型模式之外觀模式

外觀模式 概述 爲子系統中的一組接口提供一個一致的界面,Facade模式定義了一個高層接口,這個接口使得這一子系統更加容易使用。 適用性 1.當你要爲一個複雜子系統提供一個簡單接口時。子系統往往因爲不斷演化而變得越來越

原创 二十三種設計模式之創建型模式之工廠方法

工廠方法 概述 定義一個用於創建對象的接口,讓子類決定實例化哪一個類。FactoryMethod使一個類的實例化延遲到其子類。 適用性 1.當一個類不知道它所必須創建的對象的類的時候。 2.當一個類希望由它的子類來指定它所創

原创 二十三種設計模式之結構型模式之組合模式

組合模式 概述 將對象組合成樹形結構以表示"部分-整體"的層次結構。"Composite使得用戶對單個對象和組合對象的使用具有一致性。" 適用性 1.你想表示對象的部分-整體層次結構。 2.你希望用戶忽略組合對象與單個對象

原创 二十三種設計模式之結構型模式之適配器模式

適配器模式 概述 將一個類的接口轉換成客戶希望的另外一個接口。Adapter模式使得原本由於接口不兼容而不能一起工作的那些類可以一起工作。 適用性 1.你想使用一個已經存在的類,而它的接口不符合你的需求。 2.你想創建一個

原创 二十三種設計模式之創建型模式之原型模式

原型模式 概述 用原型實例指定創建對象的種類,並且通過拷貝這些原型創建新的對象。 適用性 1.當一個系統應該獨立於它的產品創建、構成和表示時。 2.當要實例化的類是在運行時刻指定時,例如,通過動態裝載。 3.爲了避免創建

原创 二十三種設計模式之結構型模式之享元模式

享元模式 概述 運用共享技術有效地支持大量細粒度的對象。 適用性 當都具備下列情況時,使用Flyweight模式: 1.一個應用程序使用了大量的對象。 2.完全由於使用大量的對象,造成很大的存儲開銷。 3.對象的大多數

原创 安裝MySql出現Write configuration file的出錯原因

出現原因: MySQL安裝路徑出現中文,特殊字符、或是重新安裝MySQL後經常遇到。前者是路徑不允許出現中文名稱,後者是由於卸載不乾淨。 我就是因爲重新安裝了MySQL,卸載不乾淨,纔會導致之後這個錯誤,接下來就列出,卸載MyS

原创 二十三種設計模式之結構型模式之橋接模式

橋接模式 概述 將抽象部分與它的實現部分分離,使它們都可以獨立地變化。 適用性 1.你不希望在抽象和它的實現部分之間有一個固定的綁定關係。 例如這種情況可能是因爲,在程序運行時刻實現部分應可以被選擇或者切換。 2.類的