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

» JWorld@TW » Software Design » Design Pattern  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to topicthreaded modego to previous topicgo to next topic
本主題所含的標籤
作者 Factory Method 方法傳遞的參數不一樣時,怎麼辦?
beliefchen





發文: 36
積分: 0
於 2009-05-23 09:55 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
網路上Factory Method 的範例寫的都很簡單
問題真的要使用起來的時候,就遇到很多問題

例如有A跟B 2個Class,都有Send()這個Method
可以用Factory Method去做

萬一有一天A的Send()需要傳一個變數,例如Send(string ID)
怎麼辦??


reply to postreply to post
作者 Re:Factory Method 方法傳遞的參數不一樣時,怎麼辦? [Re:beliefchen]
qrtt1





發文: 1754
積分: 32
於 2009-05-23 11:00 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
beliefchen wrote:
網路上Factory Method 的範例寫的都很簡單
問題真的要使用起來的時候,就遇到很多問題

例如有A跟B 2個Class,都有Send()這個Method
可以用Factory Method去做

萬一有一天A的Send()需要傳一個變數,例如Send(string ID)
怎麼辦??


聽起來多一個 overload 的 method 就可以了啊 Big Smile
不過您的情況說明過於簡略,沒什麼能進分享的想法


reply to postreply to post
蝸牛角上爭何事?石火光中寄此身,隨富隨貧且歡樂,不開口笑是癡人。
my notes
作者 Re:Factory Method 方法傳遞的參數不一樣時,怎麼辦? [Re:qrtt1]
beliefchen





發文: 36
積分: 0
於 2009-05-23 11:06 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
overload ??

並不行啊! 工廠方法中 Class A跟B 都會繼承一個虛擬類別
如果虛擬類別加一個Send(string ID),那A跟B都要實作Send(stirng ID)


reply to postreply to post
作者 Re:Factory Method 方法傳遞的參數不一樣時,怎麼辦? [Re:beliefchen]
qrtt1





發文: 1754
積分: 32
於 2009-05-23 11:19 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
beliefchen wrote:
overload ??

並不行啊! 工廠方法中 Class A跟B 都會繼承一個虛擬類別
如果虛擬類別加一個Send(string ID),那A跟B都要實作Send(stirng ID)


弟覺得應該提供更具體的說明,如果沒辦法統一子類別的行為。
那只能全都改成只有 Send(string ID),不然你就得二種都提供。

PS. 用 Send 來命名是怪了點,createXXXX 比較直覺 Big Smile


reply to postreply to post
蝸牛角上爭何事?石火光中寄此身,隨富隨貧且歡樂,不開口笑是癡人。
my notes
作者 Re:Factory Method 方法傳遞的參數不一樣時,怎麼辦? [Re:beliefchen]
koji

秒速5センチメートル

站長

發文: 8415
積分: 19
於 2009-05-23 11:25 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
beliefchen wrote:
overload ??

並不行啊! 工廠方法中 Class A跟B 都會繼承一個虛擬類別
如果虛擬類別加一個Send(string ID),那A跟B都要實作Send(stirng ID)


有不夠清楚..
另外就是你這樣已經想去改變最上層所要的結果
一種就是把Send(String id)放在Send()內去呼叫
然後看你怎樣去把他先設定好或包裝好
因為那等於是A的實作了,照理上不該被看到吧?

koji


koji edited on 2009-05-23 11:30
reply to postreply to post
JCConf Taiwan 2015 開始售票了!!
Facebook上的TWJUG社團,歡迎加入
» JWorld@TW »  Software Design » Design Pattern

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

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8