java 板


LINE

最近在熟悉interface的观念 忽然很好奇 如果今天有很多个interface 但是要implements这些interface的class有很多种可能 只能一一的先把可能的排列组合先列出来吗 比如说 interface flyer{...} interface person{...} interface animal{...} 而我今天想要implements的物件可能随机是超人或小鸟 那我一定要先 class Superman implements flyer,person{...} class Bird implements flyer,animal{....} 再由判断是决定是哪个东西 有办法藉由先判断在动态决定要implements哪些interface吗? ((虽然我觉得这样动态写好像也会造成後续判断上的困难!? --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 219.87.84.93
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/java/M.1408960207.A.061.html
1F:→ ssccg: implement interface的是class,不是object 08/25 18:42
2F:推 banjmin: 你的case用Strategy Pattern 08/25 19:52
3F:→ Killercat: 你的描述很像「第一类物件」 Strategy可以解决一部份 08/25 19:59
4F:→ Killercat: 问题,不过你想问的应该是「动态决定他有某个行为」吧 08/25 19:59
5F:→ Killercat: java无法产生第一类物件,javascript倒是可以 08/25 20:00
6F:→ Killercat: google://第一类物件 or google://First-class Objects 08/25 20:00
7F:→ Killercat: 通常来讲,强型别语言是没办法支援这种的 08/25 20:01
去查了一下 跟我想问的东西很像没错 也有看到类似的说明 我会去研究看看Strategy Pattern 感谢各位的建议!!!!
8F:→ bitlife: Proxy? 08/25 20:19
看了一下 Strategy 比较符合一点
9F:推 luoqr: 先描述什麽样的情境你会想要这样做? 08/25 21:15
我会随机取得一些info 这些info配有随机event 每个event有不同要做的事情 甚至同一个event有多种事情要做 我无法知道这些info到底会配到哪些event 可能是一个 可能是十个 我只知道event list 於是直觉上想到多重继承就是用interface 才想说先做好event然後读入装置的时候动态implement ※ 编辑: erttyy8821 (219.87.84.93), 08/25/2014 21:33:48
10F:→ Killercat: Strategy仍然必须要有一个「配接口」在class上 08/25 23:55
11F:→ Killercat: Windows有一种类似的实作叫做COM,简单的说就是个万用 08/25 23:56
12F:→ Killercat: 配接口,用非常有限的interface来描述功能。 08/25 23:56
13F:→ Killercat: 你应该是希望「连配接口都没有 动态probe看有没有实作 08/25 23:57
14F:→ Killercat: 」吧,这样的话java目前来讲还做不到 08/25 23:57
15F:→ Killercat: 不管是Java还是COM(以及後期的DCOM)都仍然要有个接口 08/25 23:57
16F:→ Killercat: 语言层级无法支援的话,在设计上请尽量避开 08/25 23:58
17F:→ Killercat: 已Strategy观点来讲 COM的「接口」就是IUnknown 08/25 23:59
我理解的没错的话 要不我就要先把"可能"的状态都先implement出来 要不就是换个设计 比如说将拿到的info的event以list存起来再一一做判断之类的 !? ※ 编辑: erttyy8821 (203.74.126.1), 08/26/2014 10:01:19
18F:→ Killercat: DI配Tool.jar也是能解 麻烦而已 08/26 10:03
19F:→ Killercat: 不过我还是建议你改个设计会好一点 08/26 10:04
20F:→ Killercat: tools.jar可以动态compile 你可以再code里面动态把code 08/26 10:06
21F:→ Killercat: 写成档案 动态呼叫tools.jar compile 动态用DI兜起来 08/26 10:06
22F:→ Killercat: 然後再动态「倒」上class上预留的万用接口 08/26 10:06
23F:→ Killercat: 这其实不难 不过真的没必要搞得那麽麻烦.... 08/26 10:07
ok 我也倾向改个设计 长知识了 谢谢!! ※ 编辑: erttyy8821 (203.74.126.1), 08/26/2014 10:08:07
24F:→ Killercat: 程式里面动态写code进档案->tools.jar->用classloader 08/26 10:08
25F:→ Killercat: 把compile好的档案接回去 大概类似这样的作法 08/26 10:08
26F:→ Killercat: 预留的接口可以参考IUnknown式怎麽做的 08/26 10:09







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

请输入看板名称,例如:e-shopping站内搜寻

TOP