C_Sharp 板


LINE

最近看到一系列的工廠方法...想說直接以實作來了解。 但是,一些問題不是很清楚,周遭的朋友開發也沒管啥開發方式.. 所以,轉而向網路上各位前輩指教,希望各位前輩指點一二。 我自己寫了一小段SampleCode,希望直接透過Code詢問會比較清楚@@ https://mega.nz/#!OIBElJ6a!_Mn1NldD2V-ZjosPEIRpcFEjW5QKZtzYNggyzu-PJBQ 主要的系統分為三塊,如圖: http://i.imgur.com/SyOOpsp.png 1.Form http://i.imgur.com/2GL7wkv.jpg 2.FactoryLib http://i.imgur.com/WWPglb6.jpg http://i.imgur.com/WYsyfqN.jpg http://i.imgur.com/YNKL6WW.jpg http://i.imgur.com/HYtzYtw.jpg 3.Log 1.最主要的Form,也是最單純的部分,只給User Keyin數值。所以,也就不引用Log.dll 2.將所有流程及處理作業都寫在此部分,因此FactoryLib會記錄Log,故引用Log.dll 3.當然就是自己寫的Log.dll 了(內容會是自己寫Log的方式...) FactoryLib內有四個.cs 最上層為 ProcessFactory => 負責判斷需要呼叫哪個模組.. 下一層為 ProcessProvide => 此為抽象Class ProcessOfTainan => 繼承ProcessProvide 實作變數A*B ProcessOfTaipei => 繼承ProcessProvide 實作變數A+B 問題一: 因為實際在處理作業流程的Class應該是 ProcessOfTainan 及 ProcessOfTaipei 所以,會在此New log 這個物件.. 但是,Log所需要紀錄的位置,會從Form1傳入,請問我要怎麼寫會比較好?? 問題二: 我有看過相關文章,如果使用Interface 可以透過反射,直接傳入Function Name,就可以呼叫該Function。 那如果使用抽象的方式呢? 問題三: 這樣的架構是否正確呢? 對於這種四層式(含Form)的方式不是很清楚,希望各位前輩指點@@ --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.239.187.103
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_Sharp/M.1452951892.A.38A.html
1F:→ Litfal: 1. LOG的話我會用.config去設定 01/16 21:54
2F:→ Litfal: 2. 有interface,call method應該就不用反射,抽象也是, 01/16 21:55
3F:→ Litfal: 反射應該是用來實現IoC,讓工廠建立並回傳適合的instance 01/16 21:57
4F:→ Litfal: 我這邊mega怪怪的專案還拉不下來,所以先以你的描述來回答 01/16 21:58
附上圖片了,再麻煩各位前輩指點... ※ 編輯: KSmart (114.39.104.214), 01/18/2016 00:05:47
5F:推 YahooTaiwan: 1. Logger 實作 Singleton 01/18 05:50
6F:推 YahooTaiwan: 2. 看不懂問題 01/18 05:52
7F:→ YahooTaiwan: 3. 沒看到哪邊有四層式架構,但此架構沒問題 01/18 05:53
8F:推 Litfal: 所謂的工廠,是用來建立物件(instance)的,不是用來call某 01/18 10:19
9F:→ Litfal: method的喔。(FactoryLib第一張圖) 01/18 10:20
10F:→ Litfal: 工廠建立出來的物件都要符合某一種規範,那規範就是介面或 01/18 10:21
11F:→ Litfal: 抽象類(其實不侷限於抽象類啦),並且在建立後回傳該介面 01/18 10:22
12F:→ Litfal: 以你的例子,就是要回傳ProcessProvide。 01/18 10:22
13F:→ Litfal: 呼叫端(Form)只相依於工廠與規範(ProcessProvide),而不須 01/18 10:33
14F:→ Litfal: 知道實作類(ProcessOfTainan及ProcessOfTaipei)的存在,以 01/18 10:34
15F:→ Litfal: 解除與眾多實作類的相依性 01/18 10:34
16F:→ Litfal: 呼叫端只需使用工廠建立instance,再依規範呼叫方法即可 01/18 10:39
17F:→ Litfal: 簡單的code會像這種感覺: 01/18 10:39
18F:→ Litfal: ProcessProvide provider = factory.Create(arg); 01/18 10:40
19F:→ Litfal: provider.CalcAB(...); 01/18 10:41







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Boy-Girl站內搜尋

TOP