V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NoKey
V2EX  ›  程序员

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

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

    新手接触的比较晚

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

    最近接触了一个服务

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

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

    在这个服务里大量使用

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

    谢谢。

    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
        7
    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   ·   实用小工具   ·   2581 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 16:03 · PVG 00:03 · LAX 08:03 · JFK 11:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.