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/cn.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灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP