C_Sharp 板


LINE

大家好 小弟想询问 "在不同情境下,要做部分不同的事情时,要怎麽分类会比较好" 这个问题问起来还蛮抽象的 所以用下列情境来描述: ---------- 前情提要: 小弟最近在做 特徵比对 的 人机介面设计(GUI) 特徵比对 最简单的讲法就是 在一张白纸上,用黑笔写上一个数字 然後找数字的轮廓,和轮廓的位置平均值 (重心),和比对相似度 轮廓 就是 List<PointF> 重心 就是 PointF 相似度 就是 Double ----------- 情境: 有三个UI画面要呈现 分别是 移动平台校正、学习特徵、实物比对 在三个画面中,都会有共同的行为,就是接收 特徵比对的EventCallback UI画面要根据特徵比对的结果做以下行为: 1. 校正画面: 用红色圆圈绘出轮廓,然後不标示重心位置 2. 学习画面: 用黄色圆圈绘出轮廓,要用黄色十字线标示重心位置 3. 实物画面: 如果够相似,用绿色圆圈绘出轮廓,用绿色十字线标示重心位置。 如果不够相似,就用红色圆圈绘出轮廓,用红色十字线标示重心位置。 因此我在三个页面下的 callback function独立写了三段相似却无法合并的程式码 接着某一天,我的BOSS跟我说,为什麽要用圆圈绘轮廓,用点不是很好吗? 然後我就要在三个独立页面分别改这三段程式码 然後我就漏改了一个页面 变成有些页面用 圆形绘图,有些用点绘轮廓 然後第二次DEMO时就很尴尬,因为我说 "我改完了" 但是在测试时,就被抓包有些地方没改到 我觉得实在是 OOXX 这时,我朋友跟我说 那就把这三段程式码提出来,用if else 判断阿 这样下次改时 就可以一起改了,多好? 即: //绘十字中心时 if(校正) else if(学习) else if(比对) //绘轮廓时 if(校正) else if(学习) else if(比对) 但我觉得这实在是并不起来 我的理由是这是三种页面的不同行为 现在打散在各个页面是很恰当的 如果集中管理 确实可以减少漏改的问题 但 ... 整个就是 觉得怪怪的 因为我最近在学模式设计时,就是希望把东西拆开来 但这想法根本就是把东西应试凑在一起阿... 所以想询问板上有没有大大能提供好建议呢? 举例来说: 哪天被要求: 十字中心线,要缩小,或是十字中心线,重心的地方不要有线 或是 比对模式,要多绘出相同重心下,标准轮廓的样貌 或是 在轮廓右下角,要添加上比对分数 等等之类的 改时要保持风格要一致的问题... ---------------- 结论: 1. 三个页面分开写,改code时要改三个地方,会漏改 2. 三个页面的callback合并,改code时,一次改全部,但多增if else 想询问如果是你,你会怎麽做? --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 221.169.231.173 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1576293178.A.51B.html
1F:→ testPtt: 三个页面分开写 但处理资料code要共用 12/14 14:19
2F:→ annies5: 不太懂你说的页面是指?我做的话会放同一个class 12/14 15:20
3F:→ s4300026: 是三个页面,三个页面的风格要一致,就像三个页面的字 12/14 15:44
4F:→ s4300026: 体大小要一样,字型要一样,但显示的文字要不一样 12/14 15:44
5F:→ s4300026: 我在内文的举例是,三个页面会接收相同的event,但有些 12/14 15:48
6F:→ s4300026: 呈现的某些部分要一样,某些不一样,在这样情况下,值 12/14 15:48
7F:→ s4300026: 不值得将这地方提取出来 12/14 15:48
8F:推 anumis: 我的想法是先模糊化需求,把3个功能的进入点先统一成固定 12/14 18:12
9F:→ anumis: 名称 (e.g. execute ()),然後才好定 interface 12/14 18:12
10F:→ anumis: UI那边就跑 interface ,用工厂模式产生实体 12/14 18:12
11F:→ anumis: 以上都没问题,再来做同质性参数分析,回头修改你的interf 12/14 18:12
12F:→ anumis: ace/实作 12/14 18:12
13F:→ testPtt: 做个类别一样的写一次就好 再用委派呼叫不一样的东西 12/14 20:16
14F:→ s4300026: 进入的方法是一样的,都是PatternMatchDoneCallBack(sen 12/15 11:08
15F:→ s4300026: der, e),也就是说,你们也是建议将散落在各ui control 12/15 11:08
16F:→ s4300026: 的方法集中管理就是了。只是我的朋友建议的是if else的 12/15 11:08
17F:→ s4300026: 方式,而你们建议可以考虑用class的方式管理。 12/15 11:08
18F:→ annies5: 页面风格统一请用CSS, sender指的是触发事件的元件(按钮) 12/15 17:53
19F:→ annies5: 情境的部分请用enum宣告 12/15 17:55
20F:→ s4300026: 我用的windows form application... 12/15 20:03
21F:→ testPtt: 你可以做user control做好基本UI 再设定委派就很好维护了 12/15 20:44







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

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

TOP