Re: [問題] 圖形介面的設計模式

看板java作者 (LaPass)時間13年前 (2012/05/17 12:47), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/3 (看更多)
下面MyClass這些是我自己摸索出來的方法 我不確定有沒有正規的教材去教這類東西 就是,使用interface去做一個顯示訊息的介面 例如: interface IAcetion<Tin> { void invoke(Tin tin); } 然後,可以在功能運作或是計算的部分的class加個欄位 class MyClass { IAcetion<String> show; ...... } 在使用MyClass的時候,看你要把show放到建構子傳進去 或用個setShow(IAcetion<String> show)放進去都可以 class OuterClass { MyClass myClass; class Show implement IAcetion<String> { public void invoke(String tin) { //顯示用的的程式碼,例如System.out.println(tin); } } public OuterClass() { myClass = new MyClass(new Show()); //把顯示的方法設定進去 ........ } ....... } 之後,在MyClass的計算部分,計算完畢後,再去呼叫執行輸出的部分 class MyClass { ...... public void count() { String s = "計算完畢的結果"; show.invoke(s); } } 這樣的好處是,可以把一個MyClass跟其他部分切割得很乾淨 如果設計的夠好的話,這個class可以從console模式搬到GUI、JSP、android 而且不用改任何一行程式 ※ 引述《wbreeze (de)》之銘言: : 小弟可以算是接觸Java不久的新手,對於Java圖形介面的開發有濃厚的興趣, : 以往也撰寫過簡單的Java GUI程式, : 但對於程式的邏輯與圖形的設計概念尚有疑惑,望版上有高手能出面解惑。 : 以下切入正題─ : case 1. : ┌─────────────┐ : │class MyClass │ : │ │ : │ │ : │ │ : │ │ : │ │ : │ │ : └─────────────┘ : MyClass中直接讓程式邏輯及GUI component交互作用(摻在一起做撒尿牛丸 : case 2. : ┌──────────────┐ : │class OuterClass │ : │ │ : │  ┌─────────┐ │ : │  │class MyClass │ │ : │ │ │ │ : │ │ │ │ : │ │ │ │ : │ └─────────┘ │ : │          │ : └──────────────┘ : MyClass是整個程式的主要邏輯部分,而OuterClass負責將圖形元件與邏輯的部分連結, : 以便讓元件呈現出對應的行為。 : 個人比較意向case 2的方法,如此可保持MyClass的可讀性(維護性?), : 但也會因此造成程式參數傳遞的複雜度(或者小弟功力不足才覺得很複雜 OTZ), : 而且有時候也很難清楚的切割圖形控制與程式邏輯的界線 ("゜Д゜) : 板上是否有資深的大大可以提出一點看法供小弟參考,在此感謝大家。 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.59.16.65

05/17 14:02, , 1F
感謝 如此一來的確可以將圖形呈現與運算切得很乾淨!
05/17 14:02, 1F
文章代碼(AID): #1Fj8BiRP (java)
文章代碼(AID): #1Fj8BiRP (java)