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

» JWorld@TW » Software Design  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to postflat modego to previous topicgo to next topic
話題被移動
該話題已被移動 - browser , 2005-05-12 00:40
如果您尚不清楚該話題被移動的原因,請參考論壇規則以及本版公告或者聯系本版版主。
本主題所含的標籤
無標籤
作者 Re:有關simple Factory的問題 [Re:ericwang1017]
alien

小弟劣作一幅



發文: 772
積分: 6
於 2005-05-12 09:15 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
所謂 IoC 或 DI (dependency injection) 只不過是把 dependency 的 wiring 推至 framework 的一層, 讓真正有 business logic 的 component 不必 couple with 某特定的 implementation, 而讓建立 component 的一層來把 component 的 dependency 建立. 當中用到的技巧, 不外也是用 Reflection (或 reflection-like 的東西), 或 (在沒有 Reflection 的語言或 component framework 下) 得撰寫建立 component 及 wiring 的 logic. DI 與 Simple Factory 能帶來的 decoupling 程度其實沒有什麼大分別, DI 也並不是什麼特別的 pattern 能做到 Simple Factory 做不到的地方 Smile

Simple Factory 其實也是 decouple dependency 的手段, 能用的技巧也差不多. 要是不利用 Reflection (或類似的機制), 當然就得更改其 implementation 了. 但那沒有好處嗎? 當然不是, 重點是, Simple Factory 把原本散落在各地 dependency 集中了, 要更改也就更容易了 Smile 在 C++ 中, 就沒有提供 Reflection 的機制, 但 Factory 當然仍有其存在價值 Smile 真的想做到不用更改 program 就能建立新的 implmentation 也不是不可以. 在 C++, 靠著 DLL/Shared Lib 的 explicit loading 及 symbol lookup, 也可以做到類似 reflection 的效果. 當然, 所花的工夫就得比較大了 Smile


alien edited on 2005-05-12 09:19
reply to postreply to post

public class Alien {
public boolean isNewbie() {
return true;
}
public String toString() {
return "請大家多多指教";
}
}
話題樹型展開
人氣 標題 作者 字數 發文時間
2538 有關simple Factory的問題 ericwang1017 936 2005-05-11 23:43
2111 Re:有關simple Factory的問題 Shen 346 2005-05-12 01:16
2182 Re:有關simple Factory的問題 ericwang1017 273 2005-05-12 01:37
2079 Re:有關simple Factory的問題 jd001982 55 2005-05-12 07:40
2317 Re:有關simple Factory的問題 alien 818 2005-05-12 09:15
» 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