※ 引述《ZooseWu (动物园)》之铭言:
: 我有两个class A 与 B
: 他们有80%的功能与函示名称相似
: 然后我只有runtime的时候才知道物件身上有哪一个class
: 我有一个好方法可以简单的呼叫 (A|B).function吗
: 对了class不是我写的
: 所以我没办法透过写interface然后让AB继承这种方法
如果是rust的话至少有几种方法
1. 用宏
2. 宣告自己的 trait 然后实作在别人的物件上
没错 rust 允许你在别人的物件上实作接口 超爽的啦
3. 写一个 delegate class 包装起来 然后实作 Deref<Target=T>
用自动转型让它看起来好像是多出来的方法一样
不过这招好像被很多rust仔视为物件导向遗毒 建议是不要这样
如果不是写rust
那就随便啦==