OOAD 板


LINE

: : A { : : display(); : : zoom(); : : } : : B { : : display(); : : play(); : : } : : C { : : display(); : : copy(); : : } : 权限决定是否加上的 share(), vote(), edit(), delete() : 比如甲因为是作者,所以为他加上 edit() 和 delete() : 同一个物件乙看到时可能只有 vote() : 而丙因为是甲的好友,所以可以 share(), vote() : 推 legendmtg :你应该先考虑把share() vote edit()这些function 10/13 04:24 : → legendmtg :做成接收A B C这些type的non-member function 10/13 04:25 : 推 tails32100 :个人想法:就算动态加上去一样,在调用时一样要判断 10/13 12:28 : → tails32100 :直接把要用的function全写进去,判断写在里面会比较 10/13 12:29 : → tails32100 :单纯好懂 Orz 10/13 12:30 : 推 qrtt1 :看起来没有动态的必要,这是有没有权限的问题啊xd 10/13 20:18 : → qrtt1 :你需要的是一个好的权限架构吧(思 10/13 20:33 : 推 legendmtg :提供set/get function就好了啊 为什麽要做成public? 10/13 21:10 小弟这个系统目前是实作在网页上 所以先试着从Q大的权限架构这个点来思考 权限我想到的实作方法有两种 1) 让 ABC 都拥有 share(), vote(), ...method, 将执行的动作送至伺服器,由伺服器判断权限并回传结果。缺 点是流量会非常大,伺服器不够好可能会有点辛苦。 这其中又分为两种作法: i. 使用 non-member function 或是建立另一个接受 ABC 为 参数的物件专门处理这些行为。 ii. 将所有的 ABC 物件都加上这些 methods,但这样会造成大 量重复的程式片段,以後要增修都很麻烦,暂不考虑。 2) 将权限判断放在 client 端,藉以减少流量,但事实上为了防 止伪 client,还是要在 server 端再判断一次。 这也分两种方法: i. 在 new 物件时同时向伺服器取得权限资讯,并只为物件加 上允许的 methods。可惜在各种搜寻下都找不到适合的设计 模式,这部份还请大大多多帮忙。TT ii. 使用类似 1) 的方法,但是在取得权限资讯後将不允许的 行为从 UI 部分锁住。 目前感觉 2-ii 的方法是可行性最高的,也可以达到节省流量的效果。 To L 大: 印象中有看过一篇文章,建议 set/getter 除非是有再处 理效果,如: setValue(a) { this.a = a/2; }。不然如果成对出 现时语意上跟直些设成 public 差别不大。所以我遇到这种情况通 常都是设成 public 比较多。 @@" 不知道小弟这样的想法有没有再改进的空间,感谢大大协助!! -- 想你的时候 不一定能告诉你 如果不告诉你 也能会意 那我们就是有 真正的默契 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 121.215.129.5
1F:→ qrtt1 :不用单独加在 A, B, C 内,写一个 decorator 10/14 18:10
2F:→ qrtt1 :ModificationSupported() 把它们包在里面 10/14 18:10
3F:→ qrtt1 :method 内只是多个 if(!isOwnner()) return; 10/14 18:11
4F:→ qrtt1 :流入的量应该远比流出的小,还是你有特别的应用@@ 10/14 18:13
5F:→ qrtt1 :这样功能的变动都在哪一层支援修改的功能 10/14 18:16
6F:→ bill42362 :目前大部分功能变动都希望在 client 端完成 10/15 01:15
7F:→ bill42362 :减少流量其实是希望反应可以及时一点,不希望使用者 10/15 01:17
8F:→ bill42362 :点按钮要等 server 回应,权限不足的操作直接显示不 10/15 01:20
9F:→ bill42362 :ModificationSupported() 的方式就是 1-ii的物件版 10/15 01:22
10F:→ bill42362 :吗? 感谢回覆 我会再想想~ 10/15 01:23
11F:→ qrtt1 :你没办法只选择做一边,权限这种事是 server 的责任 10/16 09:04
12F:→ qrtt1 :client 只是为了使用者体验做的 :P 10/16 09:04
13F:→ bill42362 :同感!! 想过之後就发现两边都不能省 XDD" 10/16 09:49
14F:→ dlikeayu :先画uml图吧,不用用写code的方式去看,滑鼠拉一拉 12/14 01:31
15F:→ dlikeayu :关系搞不好你要的东西就突然出来了 12/14 01:32







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