原创 深入淺出Java模式設計之模板方法模式

  一、引子   這是一個很簡單的模式,卻被非常廣泛的使用。之所以簡單是因爲在這個模式中僅僅使用到了繼承關係。   繼承關係由於自身的缺陷,被專家們扣上了“罪惡”的帽子。“使用委派關係代替繼承關係”,“儘量使用接口實現而不是抽象類繼承

原创 當前Java軟件開發中幾種認識誤區

  越來越多人開始使用Java,但是他們大多數人沒有做好足夠的思想準備(沒有接受OO思想體系相關培訓 ),以致不能很好駕馭Java項目,甚至 導致開發後的Java系統性能緩慢甚至經常當機。很多人覺得

原创 領域模型驅動設計(Evans DDD)之模型提煉

  當Java世界提供的可選擇性框架平臺越來越多時,我們可能被平臺架構所深深困擾,而無暇顧及軟件的真正核心:業務建模,其實,業務領域建模同樣是一個比平臺架構更復雜,更需要學習的新的領域。    相反,在實踐中,我們技術人員在經過冗長的平臺

原创 ArrayList Vector LinkedList 區別與用法

最近用到了,所以依然是轉載 ArrayList 和Vector是採用數組方式存儲數據,此數組元素數大於實際存儲的數據以便增加和插入元素,都允許直接序號索引元素,但是插入數據要設計到數組元素移動 等內存操作,所以索引數據快插入數據慢,Vec

原创 面向對象建模與數據庫建模兩種分析設計方法的比較

    我們知道:一個軟件從無到有需要經過如下幾個階段:分析、設計、編程、調試、部署和運行。    編程階段我們通常使用Java/.NET這樣面嚮對象語言工具,

原创 [讀書筆記]UML和模式應用 ---- 進化式需求

關鍵字: uml 讀書筆記 定義:需求        需求(Requirement)就是系統(更廣義的說法是項目)必須提供的能力和必須遵從的條件[JBR99] "Requirements are capabilities and

原创 JDK5新特性--java.util.concurrent BlockingQueue(4)

並 發庫中的BlockingQueue 是一個比較好玩的類,顧名思義,就是阻塞隊列。該類主要提供了兩個方法put()和take(),前者將一個對象放到隊列中,如果隊列已經滿了,就等待直到有空閒節點;後者從head取一個對象,如果沒有對象,

原创 中斷JAVA線程

 在JAVA中,通過其對線程類的內嵌支持,編程人員編寫多線程程序是很簡易的。然而,在編程人員面前,多線程呈現出一組新的難題,如果沒有被恰當的解決,將導致意外的行爲以及細微的、難以發現的錯誤。在本篇文章中,我們針對這些難題之一:如何中斷一

原创 [讀書筆記]UML和模式應用 ---- 用例

關鍵字: uml 讀書筆記       通俗地講,用例是文本形式的情節描述, 用以說明某參與者使用系統以實現某些目標。       注意:用例不是圖形,而是文本。 用例初學者的常見錯誤就是注重於次要的UML用例圖,而非重要的用例文本

原创 深入理解abstract class和interface

深入理解abstract class和inter   abstract class和interface是Java語言中對於抽象類定義進行支持的兩種機制,正是由於這兩種機制的存在,才賦予了 Java強大的面向對象能力。abstract cl

原创 JAVA中斷線程的方法

Thread.stop , Thread.suspend , Thread.resume 和Runtime.runFinalizersOnExit 這些終止線程運行的方法已經被廢棄,使用它們是極端不安全的!   現在,如果你要安全有效

原创 Java線程join()方法的用處

run() 和start() 是大家都很熟悉的兩個方法。把希望並行處理的代碼都放在run() 中;stat() 用於自動調用run(),這是JAVA的內在機制規定的。並且run() 的訪問控制符必須是public,返回值必須是void(這

原创 淺談“領域驅動設計”

作者:老王 Eric Evans所著的《領域驅動設計》(Domain-Driven Design:通常簡稱爲“DDD”)一書可以說是經典中的經典,雖然“領域”的概念早就存在,但是直到這本書的出現,才讓人們真正開始認真審視軟件的構 建,相

原创 《代碼大全》讀書筆記之一

What is Software Consturction 定義問題 problem definition 需求分析 requirements planning 規劃構建 construction planning 軟件構架 so

原创 Java中的模式 --- 命令模式

一,命令模式的實現: 命令模式裏邊一般都有以下幾個角色:客戶端,請求者,命令接口,命令實現,接受者, 下邊是簡單命令模式的實現代碼實現:  1  public class Client{  2      public static