请教一下 Java 大佬,大量使用反射进行回调,是什么套路? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
NoKey
V2EX    程序员

请教一下 Java 大佬,大量使用反射进行回调,是什么套路?

  •  1
     
  •   NoKey 2020-04-30 11:15:08 +08:00 4143 次点击
    这是一个创建于 1998 天前的主题,其中的信息可能已经有所发展或是发生改变。

    新手接触的比较晚

    目前各个模块,服务之间,都是使用消息队列进行沟通

    最近接触了一个服务

    需要通知对方或者给对方消息的时候,是调用对方提前注册的一个方法

    实际就是用反射去执行方法

    在这个服务里大量使用

    请教一下大佬,这个做法有啥专有名词不,或者是啥框架,啥模块?

    谢谢。

    17 条回复    2020-04-30 16:18:58 +08:00
    yeqizhang
        1
    yeqizhang  
       2020-04-30 11:19:50 +08:00 via Android
    回调?不是远程方法调用?
    magicdu
        2
    magicdu  
       2020-04-30 11:20:44 +08:00
    RPC
    freebird1994
        3
    freebird1994  
       2020-04-30 11:23:27 +08:00
    远程服务调用
    yeqizhang
        4
    yeqizhang  
       2020-04-30 11:34:09 +08:00 via Android
    过来瞎扯一下吧,我觉得楼主接触的东西还是不错的。
    我 15 年自学的,看的培训机构的 java 基础以及框架。后面工作了两年多,都是传统行业管理系统,部门里技术落后,对外提供接口还是 web service xml 的形式,页面开发占用了大半时间,对于技术提升很少,当然自己也是温水煮青蛙,也是有不知道从何去提高的原因。
    18 年决定辞职,然后学 dubbo,才了解了分布式,才知道 rpc 是什么。
    最近半年找工作也是在查漏补缺后端技术栈。
    哎……非科班如果之前接触的项目不好真的影响挺大的,当然我遇到的还不是最坑的。
    luckyrayyy
        5
    luckyrayyy  
       2020-04-30 11:39:06 +08:00
    RPC\RMI 了解一下
    wysnylc
        6
    wysnylc  
       2020-04-30 11:41:05 +08:00
    RPC
    然后不建议使用 RPC,换成 RESTFUL 更好
    w99w
       
    w99w  
       2020-04-30 12:32:42 +08:00
    解耦用的。平台方提供协议规范,使用者注册实现后的 service,对平台方内部来说,无额外业务逻辑。
    对于使用方,使用规范一目了然。
    w99w
        8
    w99w  
       2020-04-30 12:33:37 +08:00
    之前在一个大厂做 IM,都是这么玩的
    w99w
        9
    w99w  
       2020-04-30 12:36:02 +08:00
    专有名词,
    思想可以说是 面向协议编程。
    ic2y
        10
    ic2y  
       2020-04-30 12:37:42 +08:00
    @NoKey 叫动态代理。先声明一个接口,动态代理这个接口 [内部路由请求到具体实例的方法] ,通过这个接口实现外部的 Http 或者 TCP 请求 到 本地的方法之间的桥接。
    yanglovejing
        11
    yanglovejing  
       2020-04-30 13:48:00 +08:00
    那个地方应该统一路由的地方
    NoKey
        12
    NoKey  
    OP
       2020-04-30 14:04:38 +08:00
    @w99w 恩,大概就是你的说的这个感觉。习惯了用消息队列等中间件来解藕,感觉这种做法有点麻烦
    liyanggyang
        13
    liyanggyang  
       2020-04-30 14:05:38 +08:00   1
    观察者模式
    ddoocc
        14
    ddoocc  
       2020-04-30 14:13:12 +08:00
    计算机的各种思路来来去去就那几种,换个应用场景就换个名字。
    w99w
        15
    w99w  
       2020-04-30 15:05:21 +08:00
    @NoKey
    消息队列这种最优雅
    不过不同模块的消息队列的实现方式都不一定相同
    所以开放点还是不能太复杂,反射+协议
    简单粗暴,正确有效
    gscoder
        16
    gscoder  
       2020-04-30 15:40:04 +08:00
    消息队列太开放,强制性不高。rpc 感觉还是兼有解耦和标准化的好处
    xuanbg
        17
    xuanbg  
       2020-04-30 16:18:58 +08:00
    写服务回调用得少,我写客户端就大量使用回调。原因很简单,因为 model->viewModel 是单向的,所以 viewModel 必须通过反射和回调才能调用 model 里面的方法,把 view 中的交互事件反馈回去。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1497 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 16:30 PVG 00:30 LAX 09:30 JFK 12:30
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86