楼主:
ZooseWu (N5)
2021-11-11 18:21:49我有两个class A 与 B
他们有80%的功能与函示名称相似
然后我只有runtime的时候才知道物件身上有哪一个class
我有一个好方法可以简单的呼叫 (A|B).function吗
对了class不是我写的
所以我没办法透过写interface然后让AB继承这种方法
作者: aynmeow (只有我跟喵喵) 2021-11-11 18:22:00
if a 反射a
作者:
SuicidePeko (string int = true;)
2021-11-11 18:23:00(a)obj.fuckPeko()
楼主:
ZooseWu (N5)
2021-11-11 18:23:00要用反射喔:( 反射感觉就很吃资源
作者: aynmeow (只有我跟喵喵) 2021-11-11 18:24:00
不用反射 case过去吧 够简单惹
作者:
yam276 ('_')
2021-11-11 18:24:00两个完全不同的class吗
楼主:
ZooseWu (N5)
2021-11-11 18:24:00所以我有30条function 就要写30个switch?
作者: aynmeow (只有我跟喵喵) 2021-11-11 18:25:00
除非你想去捞function2名称做坏事 不然应该case就可以惹ㄅ
楼主:
ZooseWu (N5)
2021-11-11 18:25:00应该说两个套件实做同样的功能 函示或变量名称大部分一样
楼主:
ZooseWu (N5)
2021-11-11 18:26:00我本来想用泛型 where: A,B 可是好像没有这种用法我现在就是用if else 可是要用的功能越来越多想说有没有一劳永逸的通用解法
楼主:
ZooseWu (N5)
2021-11-11 18:30:00那啥
作者:
yam276 ('_')
2021-11-11 18:30:00代理模式
楼主:
ZooseWu (N5)
2021-11-11 18:32:00就是写一个中间层把所有的功能都实做一遍 然后看状况呼叫A或B喔
作者:
SuicidePeko (string int = true;)
2021-11-11 18:32:00每个函数定义一个 里面就做if a a.call() else
楼主:
ZooseWu (N5)
2021-11-11 18:33:00好智障 可是好像也只能这样了
没办法从开头给的一些变量或数值直接先去判断要用哪个一定要在跑的时候才会知道是嘛?
楼主:
ZooseWu (N5)
2021-11-11 18:34:00每个物件都有A 只是有可能有B 有B就要叫B 没有就叫A
作者:
SuicidePeko (string int = true;)
2021-11-11 18:34:00这就class先天结构就不对了==只有远路可走用object 然后(a) (b) 这样会很慢噢??
楼主:
ZooseWu (N5)
2021-11-11 18:38:00就是不行啊 一个是引擎的class 一个是套件的class
作者:
SuicidePeko (string int = true;)
2021-11-11 18:39:00原来叫unboxing 学到了
楼主:
ZooseWu (N5)
2021-11-11 18:40:00看起来写代理就是唯一解了
建map跟列举 要用的时候把列举丢进mapget出来
楼主:
ZooseWu (N5)
2021-11-11 18:46:00GetMethod就是反射了吧
作者:
SuicidePeko (string int = true;)
2021-11-11 18:48:00感觉定义函数岔路的时候可以用delegate弄ternary + delegate? 不知道可读性会如何就是了
楼主:
ZooseWu (N5)
2021-11-11 18:50:00小脑袋好痛 我慢慢思考酝酿一下
作者:
Apache (阿帕契)
2021-11-11 18:53:00function map不适用这种情况