Programming 板


LINE

※ 引述《Elly (●A利 ●A你)》之铭言: : 常听到IT人在说低耦合,高内聚,小妹我也希望能作到如此... : 但以我一个初学者,实在很难以理解,到底要如何实作呢? 工作一阵子的人说自己初学者,教他人情何以堪 (: : 最近,我练习作一个client-server-db架构的底层, : 以我一个初学者的想法, : 当然就是作一个Base Form, 让所有表单来继承... 蛮了解你所讲的方式; 我也做过同样的事情. http://en.wikipedia.org/wiki/Coupling_(computer_programming) 上面网页中指出OOP有subclass coupling,那当然,子类一定是父类的副本. 像base-form这种作法的成本相当高,一张表单怎麽会是另一张表单的子类呢? : 我把每个视窗都会出现的新增、修改、审核、删除、 : 取消删除、退回、清除画面....等按钮都拉一拉, : 以及中间放一个panel,加以配色、排版後, : 再加上一些属性:ex.上述按钮各要呼叫哪些server端的method...等, : 然後再注册上述按钮的事件, 每一页都用到若干项物件,我觉得应该是有一组核心资料用来表达表单的包含物, 然後有个renderer负责从核心资料展开成可见的表单. 而这样的设计,在一般的SDK中都是这样了,常见是用XML定义一份表单的成员. : 在事件中去呼叫那些属性设好的Method, : 当然...我还没能作到让继承的表单什麽code都不用写,只要设一设就可以动, : 因为每个表单总有它特别要处理的地方, : 像是输入的栏位,都要个别再拉,个别依状况处理, : 所以我又在Base Form中所有我注册事件中 : 呼叫我为它们加上的一个[可override的Method], : 让继承表单可以override实作内容... : 另外我也花了不少时间继承开发工具内建的输入元件, : 像是TextBox, Grid, ComboBox等等,再为他们加上一些功能 : 作了很久之後, : 我觉得...好乱呀XD.... 所以,我觉得你应该关注的是内聚: http://en.wikipedia.org/wiki/Cohesion_(computer_science) 内聚是指一份程式尽量只关注一件事情. 至於以上所指的base-form, extended-form那种设计,你应该要看是要整理哪些功能. 哪些功能很像,有很明显的父子关系,才有这种继承方式. 至於一个表单和另一个表单,怎麽看都比较像是二者同样从一个类型中具体化而来, 而不是这个表单是那个表单的子类. : 所以我想到了IT人常说的, : 要作低耦合+高内聚, : 我悟性不太好,又再去google了好几次... : 猜想应该是不要作一个Base Form来继承, : 而是将Base Form要作的事,都提出来写成很多个小小的静态函数, : 再让其它Form呼叫这些静态函数就好了吗? : 但这样感觉好像每个Form都会写差不多code耶~有点像在复制贴上... : 我实在很疑惑@@? : 有人能教教我吗?感恩啊~ 其实你在做form generator. 也许可以翻翻编译程式方面的资料,再想想看 怎麽设计比较有意思. --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.231.65.42 ※ 编辑: yauhh 来自: 61.231.65.42 (01/19 21:58)
1F:推 Elly:歹势~我仍不是很懂,原本我以前公司是都用user 111.184.1.200 01/19 22:23
2F:→ Elly:control当base form的内容, 我们再继承来加东 111.184.1.200 01/19 22:23
3F:→ Elly:西, 然後主程式run起来,再将该user control给 111.184.1.200 01/19 22:23
4F:→ Elly:dock.fill在它所即时new出的form内,所以我才 111.184.1.200 01/19 22:24
5F:→ Elly:想说直接作在base form继承,那你说不该form 111.184.1.200 01/19 22:24
6F:→ Elly:那是否我还是用user control好呢@@? 111.184.1.200 01/19 22:25
7F:→ yauhh:那是很可怕的作法,一个表单或一个control 61.231.65.42 01/19 22:37
8F:→ yauhh:可能根本不藕合.一个control就像一个AP一样. 61.231.65.42 01/19 22:38
9F:→ yauhh:一个物件类别如何定义,可以多读谈OO的书来 61.231.65.42 01/19 22:40
10F:→ yauhh:悟. 我觉得那种思考要领算是哲学. 61.231.65.42 01/19 22:41
11F:推 Elly:@@嗯....有点深奥...我要想一下 111.184.1.200 01/19 22:44
12F:→ Elly:3Q^^ 111.184.1.200 01/19 22: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