[问题] Callback未定型别时的处理方式

楼主: Peruheru (还在想)   2015-11-25 14:50:26
我希望某个类别里面有个函式
该函式的动作、输入、输出型态都由呼叫者决定
但实际执行的时机由该类别自己决定
类似撰写一个输出入型态都由自己决定的事件
而且该类别会成为集合,所以每个集合内的物件该函式的动作都不一样
不过不知道要怎么写才是正确写法,还是说这件事无法做到?
参考 http://tinyurl.com/phkcmwp 的方法,但是他要求在类别上加上<Tin, Tout>
但这样一来我就不能用物件集合去处理它了,因为宣告变量时无法省略泛型型别
如果要维持物件集合的样子,就变成不能用泛型而要针对每个输出入型别各写一个作多载
这种做法感觉实在太没有弹性了不想这么做阿orz
请问有没有比较好的方法,或是我什么地方观念搞错了吗?
作者: m339606 (mize)   2015-11-25 19:17:00
看不是很懂...你要的不就是泛型吗?
作者: pauliaia   2015-11-26 01:41:00
Chain-of-responsibility pattern 是这个吗这是把switch case 拆出来写的一种方法 基本上多类型别简单的方法就是用if(物件判断)c sharp我也很菜
作者: m339606 (mize)   2015-11-26 21:05:00
Sorry..你的举例我看了三次还是不太明白直觉是要用interface来处理
作者: bantime (景)   2015-11-26 21:57:00
楼上..原PO的东西我有跟他要code来看..感觉上interface还是不行..因为也没有很完整的叙述 不然也许设计上可以改因为我比较好奇return出来的东西要做什么,有没有可能在callback里面处理这样
楼主: Peruheru (还在想)   2015-11-26 22:19:00
好吧我举例难懂 囧
作者: m339606 (mize)   2015-11-26 22:49:00
不如你直接把你要想要的结果用Code表示(不用可编译)或是用流程图的方式来说明...
作者: Litfal (Litfal)   2015-11-26 23:35:00
如果要让使用者简单使用,为什么不考虑用工厂隐藏接口建立细节?
楼主: Peruheru (还在想)   2015-11-26 23:44:00
我马上去恶补工厂模式...
作者: bantime (景)   2015-11-27 00:06:00
我是觉得工厂模式也不会是你需要的@@不然就是我没想到适合的方式..
楼主: Peruheru (还在想)   2015-12-01 10:55:00
如果我没搞错工厂模式的做法,他所隐藏的细节仍然是我希望使用者可以自订的地方,如同前面提到我并不能针对细节事先决定做法,因为每个呼叫者作法可能有细微不同处所以我的类别应该无法适用工厂方法

Links booklink

Contact Us: admin [ a t ] ucptt.com