原创 橋接模式(Brigde)

@@@模式定義: 將抽象部分與它的實現部分分離,使它們都可以獨立地變化。 @@@練習示例:  發送提示消息 @@@示例代碼: \pattern\Me

原创 C語言格式化輸出中的星號

#include <stdio.h> int main(int argc, char *argv[]) { int num = 0x12345678; char *str = "programmer"; int i =

原创 熱身運動——簡單工廠模式

首先,澄清兩個概念。用戶程序——服務使用者,服務程序——服務提供者。 用戶程序怎麼使用服務程序提供的服務呢?最直接的方法如下:在JAVA中的用戶類中直接創建一個服務類,然後調用服務類提供的方法;在C中用戶模塊直接調用服務模塊的函數。 舉個

原创 GoF設計模式簡介

1、設計模式定義 軟件設計模式 : 是指在軟件開發中,經過驗證的,用於解決在特定環境下、重複出現的、特定問題的解決方案。 2、設計模式歷史 設計模式

原创 外觀模式(Facade)

@@@模式定義: 爲子系統中的一組接口提供一個一致的界面,Facade模式定義了一個高層接口, 這個接口使得這一子系統更加容易使用。 @@@練習示例

原创 單例模式(Singleton)

單例模式(Singleton) @@@模式定義: 保證一個類僅有一個實例,並提供一個訪問它的全局訪問點。 @@@練習示例: 讀取配置文件的內容。 @

原创 C語言中的函數指針定義

#include <stdio.h> int max(int x, int y) { return (x >= y ? x : y); } typedef int (*FUNC_PTR)(); int main(int ar

原创 C語言中取&等於自身的兩個東東

今天發現C語言中有兩個取&等於自身的東東——數組和函數 #include <stdio.h> int max(int x, int y) { return (x >= y ? x : y); } int main(int

原创 抽象工廠模式(Abstract Factory)

@@@模式定義: 提供一個創建一系列相關或相互依賴對象的接口,而無需指定它們具體的類。 @@@練習示例:  選擇組裝電腦的配件。 @@@示例代碼: src\computer\CPUApi.java~~~~~~~~

原创 命令模式(Command)

@@@模式定義: 將一個請求封裝爲一個對象,從而使你可以用不同的請求對客戶進行參數化, 對請求排隊或記錄請求日誌,以及支持可撤銷的操作。 @@@練習示例:  電腦開機 @@@示例代碼: \pattern\

原创 職責鏈模式(Chain of Responsibility)

@@@模式定義: 使多個對象都有機會處理請求,從而避免請求的發送者和接收者之間的耦合關係。 將這些對象連成一條鏈,並沿着這條鏈傳遞該請求,直到有一個對象處理它爲止。 @@@練習示例:  申請聚餐費用 @@

原创 組合模式(Composite)

@@@模式定義: 將對象組合成樹型結構以表示“部分-整體”的層次結構。 組合模式使得用戶對單個對象和組合對象的使用具有一致性。 @@@練習示例:  商品類別樹 @@@示例代碼: <不用模式> \produ

原创 代理模式(Proxy)

@@@模式定義: 爲其他對象提供一種代理以控制對這個對象的訪問。 @@@練習示例:  水滸小故事 @@@示例代碼: (取自《設計模式之禪》) src\women\KindWomen.java~~~~~~~

原创 狀態模式(State)

@@@模式定義: 允許一個對象在其內部狀態改變時改變它的行爲。 對象看起來似乎修改了它的類 @@@練習示例:  在線投票 @@@示例代碼: \pattern\VoteState.java~~~~~~~~~