JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Software Design  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 Re:Strategy Pattern的問題 [Re:avseq]
Sengeor





發文: 62
積分: 1
於 2007-03-14 00:07 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
avseq wrote:
之前沒什麼接觸Design pattern
最近開始在看一些基本的 希望在寫程式的時候用的上
在看完良葛格大大的Strategy Pattern後有一些疑問希望版上的高手能說明

以良葛格大大舉的例子轉換windows及linux符號的例子

如果是一般的寫法的話
1
2
3
4
5
6
7
8
public class ReplaceMethod()
{
 public static void replaceWindowsText(String text)
 {}
 
 public static void replaceLinuxText(String text)
 {}
}


所以如果別的類別要使用的話可能會這樣寫
1
2
3
4
  if(這個字元是Linux)
     ReplaceMethod.replaceWindowsText(text);
  else
    ReplaceMethod.replaceLinuxText(text)

如果我還要加其他轉換字元的方法就是在ReplaceMethod這個class新增方法

那如果是以Strategy Pattern方式,如果要用的話
1
2
3
4
  if(這個字元是Linux)
     TextCharChange.replace(new WindowsStrategy(linuxText));
  else
    TextCharChange.replace(new LinuxStrategy(windowsText));

如果我要加其他轉換字元的方法就是新增一個class繼承TextStrategy

而就使用的人和整體程式碼而言,我不覺得Strategy pattern的方法好處在哪裡
有人可以幫我解釋一下嗎


再加點東西,就可以看出strategy的好處
1
2
3
4
  if(這個字元是Linux)
     TextCharChange.replace(new WindowsStrategy(linuxText));
  else
    TextCharChange.replace(new LinuxStrategy(windowsText));

把這個code變成

1
2
TextCharChange.replace(osStrategyTable.get(osText));
 

這樣不就簡潔許多,if else不見了
如果再多個100個os也不影響,不會有古代式的超長if else問題。


reply to postreply to post
http://www.apollo-chess.com.tw
話題樹型展開
人氣 標題 作者 字數 發文時間
5662 Strategy Pattern的問題 avseq 812 2006-02-11 22:23
4897 Re:Strategy Pattern的問題 Yoshi 555 2006-02-11 23:02
4835 Re:Strategy Pattern的問題 caterpillar 483 2006-02-11 23:50
4854 Re:Strategy Pattern的問題 avseq 500 2006-02-12 00:49
4848 Re:Strategy Pattern的問題 caterpillar 406 2006-02-12 09:01
4789 Re:Strategy Pattern的問題 avseq 170 2006-02-14 20:28
4690 Re:Strategy Pattern的問題 caterpillar 290 2006-02-14 20:37
4796 Re:Strategy Pattern的問題 ulu 275 2006-02-12 23:51
4824 Re:Strategy Pattern的問題 caterpillar 57 2006-02-13 08:35
4756 Re:Strategy Pattern的問題 ulu 189 2006-02-14 21:50
4707 Re:Strategy Pattern的問題 avseq 367 2006-02-15 19:43
4916 Re:Strategy Pattern的問題 caterpillar 341 2006-02-15 21:13
4054 Re:Strategy Pattern的問題 Sengeor 1179 2007-03-14 00:07
» JWorld@TW »  Software Design

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8