Time of Update: 2018-12-07
http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=273&extra=page%3D2如果以繪圖為例的話,一個文字是一個繪圖元件,一個線段是一個繪圖元件,而一個長方形也是一個繪圖元件,這些繪圖元件可以組成一個圖片,如果將這個圖片也視作一個繪圖元件,則這麼遞迴繪圖下去,就可以組合成一個較大的、複雜的圖形元件,這樣的目的可以使用Composite模式來解決。對於使用者而言,無論是文字、線段或長方形,甚至是組合後的圖片元件
Time of Update: 2018-12-07
http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=265&extra=page%3D2考慮一個狀況,您所經營的工廠正在生產一個新的電視機產品,現在有一個問題發生了,您的電視機產品所有的組件都可以自行生產,像是操作面版、電源、搖控裝置等等等,但熒幕卻必須依賴另一個廠商或子廠商供應,這時您怎麼辦?您不能將生產進度停下了,相反的您必須確定一些事情,您知道有關於熒幕控制的所有介面,您可以將這些對介面的操作溝通先實現,等到熒幕
Time of Update: 2018-12-07
http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=266&extra=page%3D2您從圖書館的期刊從發現了幾篇您感興趣的文章,由於這是圖書館的書,您不可以直接在書中作記號或寫字,所以您將當中您所感興趣的幾個主題影印出來,這下子您就可在影印的文章上畫記重點。Prototype模式的作用有些類似上面的描述,您在父系類別中定義一個clone()方法,而在子類別中重新定義它,當用戶端對於所產生的物件有興趣並想加以利用,而
Time of Update: 2018-12-07
http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=263&extra=page%3D2假設您要製作一個對話方塊(Dialog)元件,您希望的是這個對話方塊可以有不同的視感(Look-and- feel),最基本的想法是,藉由Setter將不同視感的元件設定給這個對話方塊,例如:CustomDialog.javapublic class CustomDialog { private IButton button;
Time of Update: 2018-12-07
http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=264&extra=page%3D2您想要建立一個迷宮產生程式,迷宮使用二維陣列來定義,0表示道路,1表示牆,2表示寶物,根據所定義的二維迷宮陣列,您想要程式自動產生各種不同材質的迷宮,例如磚牆迷宮,鑽石迷宮等等。您可以在程式中定義兩個角色,一個是指導迷宮建立的Director角色,一個是按照指導者指示建立迷宮的Builder角色,Director根據定義的迷宮陣列來
Time of Update: 2018-12-07
1 可以選擇任何日期<input id="txtDate" class="Wdate" type="text" onfocus="WdatePicker()" />2 今天以前的日期<input type="text" class="Wdate" onfocus="WdatePicker({maxDate:'%y-%M-#{%d}'})" />3 今天以後的日期<input type="text"
Time of Update: 2018-12-07
http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=262&extra=page%3D2Simple Factory模式(又稱Static Factory模式),一個Simple Factory生產成品,而對用戶端隱藏產品產生的細節。實作時定義一個產品介面(interface),並透過特定靜態方法來建立成品。假設有一個音樂盒工廠,購買音樂盒的客人不用知道音樂盒是如何製作的,他只要知道如何播放音樂盒就可以了,以 UML
Time of Update: 2018-12-07
http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=259&extra=page%3D2可能你已經在用Decorator模式了,但是跟所有其他模式一樣,知道你為什麼使用它,學習使用它跟別的開發人員溝通是很重要的。
Time of Update: 2018-12-07
http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=274&extra=page%3D2在JavaSwing中的JTextArea元件預設並沒有捲軸,因為設計人員認為捲軸的功能並不是一定需要的,而決定讓程式人員可以動態選擇是否增加捲軸功能,捲軸的功能是由JScrollPane元件提供,如果您要加入一個具有捲軸功能的JTextArea,您可以如下進行設計:JTextArea textArea = new
Time of Update: 2018-12-07
在開發Socket項目的時候,如果是開發一個自己玩玩,當然不用考慮效率、安全性等問題,可是如果是一個企業級的,你就不得不關注這幾點。本系列文章將我們實驗室裡的Socket程式變成企業級的應用。 NIO編程肯定是一個很好的解決方案,不過這部分留在以後討論。今天我想說說如何讓你的阻塞的Scoket程式高效、安全的跑起來。
Time of Update: 2018-12-07
http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=272&extra=page%3D2在 Gof 的書中指到Bridge模式的目的:“將抽象部份與它的實現部份分離,使它們都可以獨立地變化。”這句話寫得簡短,這邊再作進一步的解釋,抽象部份指的是行為方面定義,實現方面指的是與特定平台相依的代碼實現。一個實際的例子在Gof書中有提到,假設您定義了一個IWindow介面,這個介面只定義一些抽象的繪圖行為,而不涉及平台的實作,
Time of Update: 2018-12-07
單例在多線程中存在同步問題,但是對那些變數有影響呢?原因? 以下純屬個人觀點,不吝賜教: 先上代碼:Test類代碼 public class Test extends Thread { public void run() { Singleton.getInstance().print(this.getName()); } public static void main(String[] args) { Test test1=
Time of Update: 2018-12-07
http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=270&extra=page%3D2您的電腦是箇舊電腦,新的滑鼠都在使用USB介面了,而您的電腦上並沒有USB,而只有一個PS2介面,這時您可以使用一個USB轉PS2的接頭作為轉換,這樣您的電腦就可以使用新滑鼠了(當然您也可以使用USB擴充卡,意思是相同的)。類似的概念,有時候您想在原來的程式中加入一個外部元件,例如一個類別,但是這個類別與您目前所設計的程式在介面上並
Time of Update: 2018-12-07
http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=271&extra=page%3D2Adapter模式的另一種作法是Class Adapter模式,在這個模式下,Adapter直接繼承Adaptee(要引進的新類別),以擁有當中的成員及方法,在C++中的話可以這麼作:C++中可以多重繼承,但在Java中不行,所以在Java中若要採用Class
Time of Update: 2018-12-07
http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=269&extra=page%3D2在Java中如果要定義事件處理的方式,必須實作EventListener的子介面,例如實作 WindowListener來定義一些視窗事件的處理方式,WindowListener中定義了七個方法:public interface WindowListener extends EventListener { public
Time of Update: 2018-12-07
普通行列轉換 問題:假設有張學產生績表(tb)如下: 姓名 課程 分數 張三 語文 74 張三 數學 83 張三 物理 93 李四 語文 74 李四 數學 84 李四 物理 94 想變成(得到如下結果): 姓名 語文 數學 物理 ---- ---- ---- ---- 李四 74 84 94 張三 74 83 93 ------------------- */ create table tb(姓名 varchar(10) , 課程
Time of Update: 2018-12-07
http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=267&extra=page%3D2Singleton的英文意義是獨身,也就是只有一個人,應用在物件導向語言上,通常翻譯作單例:單一個執行個體(Instance)。很多時候,您會需要Singleton模式,例如印表機管理,您希望程式中只能有一個PrintSpooler,以避免兩個列印動作同時輸入至印表機中;例如資料庫管理,因為建立串連(Connection)物件會耗用
Time of Update: 2018-12-07
http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=268&extra=page%3D2考慮使用 Singleton 模式 時擁有子類別的問題,在Singleton模式中的getInstance()通常是一個靜態方法,不能在子類別中重新定義它,關於子類別執行個體的產生交由getInstance()來進行是最好的選擇,例如:public class Singleton { private static
Time of Update: 2018-12-07
http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=258&extra=page%3D2問題的提出
Time of Update: 2018-12-07
http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=296&extra=page%3D1Two-phaseTermination直譯的話是“兩相終止”,不過就這個模式而言,該譯作“兩階段終止”比較適當,想像您有一個執行緒正在周期性的運作,在“運作階段”您送出了停止執行緒的請求,這時候執行緒不該慌張的馬上終止目前的工作,而是先完成這一次周期的工作,然後進入“善後階段”完成一些善後的工作,例如關閉檔案或網路串流,所謂的兩階