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

监听器注册命名习惯用 add/remove 还是 register/unregister?

  •  
  •   kerb15 · 2020-12-09 12:10:20 +08:00 · 1841 次点击
    这是一个创建于 1206 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,各位倾向于用哪种?有没有什么考究?

    14 条回复    2020-12-11 17:53:37 +08:00
    mejee
        1
    mejee  
       2020-12-09 12:23:03 +08:00 via iPhone   ❤️ 1
    后者。因为显得高级
    des
        2
    des  
       2020-12-09 12:24:59 +08:00 via iPhone
    on off 字少
    zoharSoul
        3
    zoharSoul  
       2020-12-09 12:28:19 +08:00
    add 啊
    addOnclickListener
    zoharSoul
        4
    zoharSoul  
       2020-12-09 12:28:31 +08:00
    rosu
        5
    rosu  
       2020-12-09 12:48:27 +08:00 via Android
    个人理解:后者更倾向于搭配使用,有注册就要有注销(内存泄露警告)。前者只是提供删除能力,就算不删除问题也不大。
    also24
        6
    also24  
       2020-12-09 13:30:17 +08:00
    add/remove 用于可以多次注册的

    register/unregister 用于只能单次注册的
    also24
        7
    also24  
       2020-12-09 13:30:47 +08:00
    好像有点歧义,修改一下:

    add/remove 用于可以注册多个的

    register/unregister 用于只能注册单个的
    cpstar
        8
    cpstar  
       2020-12-09 14:08:41 +08:00
    subscribe?
    mebtte
        9
    mebtte  
       2020-12-09 14:20:50 +08:00
    我一般用 listen/unlisten[狗头]
    namelosw
        10
    namelosw  
       2020-12-09 14:29:39 +08:00
    啊? 不是一般 subscribe / dispose 嘛? 你这两套脱离上下文就不知道在说啥了.

    另外还看语言, 比如 JS / TS 这种 lambda 和类型支持比较好的, 经常用函数, 这样就不用像方法一样非得起个名了.

    比如 React 的 hooks, 外层 lambda 是 subscribe, 返回的 lambda 是 dispose:
    useEffect(() => {
    return () => {}
    })

    或者像很多 observable 库, 效果是一样的:
    const dispose = subscribe()
    dispose()
    no1xsyzy
        11
    no1xsyzy  
       2020-12-09 20:50:33 +08:00
    connect disconnect (捣浆糊
    abersheeran
        12
    abersheeran  
       2020-12-09 22:33:32 +08:00
    你自己都说注册了,那就 register 呗。

    另外,真不考虑直接用中文变量名吗?看起来你应该是在写 TS ( JS )、C# 这种现代语言。注册 /取消注册,挺好的。
    someonedeng
        13
    someonedeng  
       2020-12-11 10:39:20 +08:00
    plug / unplug (不是
    ychost
        14
    ychost  
       2020-12-11 17:53:37 +08:00
    listener.add/remove
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2809 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 14:56 · PVG 22:56 · LAX 07:56 · JFK 10:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.