設計模式
漢家郎
敬天法祖
展开
-
設計模式之開閉原則
西漢楊雄在其所著《太玄》一書中寫道:知固而不知革,物失其則;知革而不知固,物失其均。如果楊雄同志生在當世,他的話便不會這麼難懂,其意思就是:做事的時候,要聽“爺爺的話”,但又不能全聽,而不知改進。全聽“爺爺的話”便失去了事之常法,不聽“爺爺的話”便失去了這件事原本的意義。楊雄死後兩千多年,我們的軟體業蓬勃發展,可惜他的後輩沒能好好聽“老爺爺的話”,反倒是一個夷人告訴我們一個與楊雄的話有異曲原创 2012-02-27 19:04:26 · 667 阅读 · 0 评论 -
Python 簡單Singleton
class Singleton(object): instance = None def __init__(self): pass @classmethod def getInstance(cls): if(cls.instance == None): cls.instance = Singleton() return cls.instance原创 2014-05-06 10:54:41 · 560 阅读 · 0 评论 -
命令模式與合成模式並用實現宏命令功能例述
命令模式將請求一個操作的對象與執行這個操作的對象解耦,使其獨立的演化;命令模式允許系統使用不同的請求把客戶端參數化、允許對請求排隊或者記錄日誌;命令模式與備忘錄模式合用可用來提供命令的恢復和撤銷功能。-----------------------------------------------------------------------------------本文將以一個例子來講述命令原创 2012-04-03 22:36:21 · 1013 阅读 · 0 评论 -
Java 理論與實踐: 正確使用 Volatile 變量
簡介: Java™ 語言包含兩種內在的同步機制:同步塊(或方法)和 volatile 變數。這兩種機制的提出都是為了實現代碼執行緒的安全性。其中 Volatile 變數的同步性較差(但有時它更簡單並且開銷更低),而且其使用也更容易出錯。在這期的 Java 理論與實踐 中,Brian Goetz 將介紹幾種正確使用 volatile 變數的模式,並針對其適用性限制提出一些建議。 Java 語转载 2012-03-15 11:09:08 · 1094 阅读 · 0 评论 -
命令模式例述
君命有所不受--《孫子兵法》國君令將班師回朝,其流程為,國君將其君班師令交給傳令太監,傳令太監將君令傳給將軍,至於將軍回不回朝,那便是將軍的事了。這便是命令模式的典型應用。其靜態類圖如圖一所示:圖一備注:我們常在一些書籍中看到講解一些理論時,舉的一些生動的例子,筆者認為,這些例子不是為了讓我理解這些理論,而是當我們理解後,易於記憶。本例亦如是。命原创 2012-03-04 22:59:00 · 404 阅读 · 0 评论 -
Junit框架中合成模式的使用
一 合成模式的介紹 合成模式將對象組織到樹結構中可以用來描述整體與部分的關係。合成模式可以使客戶端將單純元素與複合元素同等看待。 合成模式之於面向對象如同樹結構之於結構化編程。二Junit中對合成模式的使用分析圖一Test接口、TestCase類與TestSuite類之間的靜態類圖如圖一所示。Test接口只含有兩個方法,其源碼如下所示:package j原创 2012-03-02 16:33:07 · 587 阅读 · 0 评论 -
理解不變模式-Immutable Pattern<一>
題記:上邪 我欲與君相知 長命無絕衰 山無陵 江水為竭 冬雷陣陣 夏雨雪 天地合 乃敢與君絕 從String說起:用Java或C#時,如果一個字串是頻繁變化的,是不建議把該變數設為String類型的,而建議為StringBuilder,經過N次變化得到最終的字串後,再把StringBuilder轉化為String交給某個方法去處理。不變模式會告訴我們,這是為什麼?備註:我學原创 2012-02-27 18:07:36 · 369 阅读 · 0 评论 -
理解不變模式-Immutable Pattern<二>
更特殊的情況:我寫了一個不變類PartySchool,放在那裡,後來忙別的事情去了,把這一塊維護工作交給了另一個哥們,當他調用這個類的時候發現,創建一個ps對象以後想讓ps從handsome變成不handsome是不可能的,於是他想了一招:public class VirtualPS extends PartySchool{ public VirtualPS(Stringappe原创 2012-02-27 18:08:42 · 421 阅读 · 0 评论 -
參數校驗之痛
至今猶記第一份工作寫的那個日誌tpgj原创 2014-11-23 12:40:50 · 477 阅读 · 0 评论