V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
TomVista
V2EX  ›  问与答

单行_简单_意义不明确的赋值语句是否有必要封装成函数,以便于理解代码.

  •  
  •   TomVista · 2019-02-20 11:11:51 +08:00 · 930 次点击
    这是一个创建于 1892 天前的主题,其中的信息可能已经有所发展或是发生改变。

    例: userName = getUrlParameter().name;

    改成 getUserName(){ return getUrlParameter().name; }

    userName = getUserName();

    2 条回复    2019-02-20 11:54:59 +08:00
    zhy0216
        1
    zhy0216  
       2019-02-20 11:24:19 +08:00 via iPhone   ❤️ 2
    有些要有些不要

    你的例子感觉要
    一方面这个函数可以在多处使用
    另一方面万一以后决定 url 传 userId
    这里也可以统一处理
    yesterdaysun
        2
    yesterdaysun  
       2019-02-20 11:54:59 +08:00   ❤️ 1
    我感觉单看这个例子是不需要的, 因为变量 userName 已经说明含义了, 而赋值语句也只是一个简单的获取成员变量, 本身语义就有 get 的意思, 封装了一下, 只是把这个隐含的 get 显式的写出来了.

    比如对我来说读这段代码, 脑子里读出来的是"username = get name from url parameter", 如果用函数就是"username = get user name", 我感觉是差不多的.

    不过标题说这是意义不明确的赋值语句, 说明读它的人可能是不能一眼理解, 那封装成函数是一个可行的方法, 前提是确实能感受到这种可读性的提升, 否则就是过度封装, 毕竟可读性对不同的人来说是不一样的, 还是要从真正读代码的人的角度去抉择

    但是如果这段赋值经常重复, 或者有好几个类似的东西, 那就需要考虑封装, 而且要根据重复的数量和范围用不同的封装方式, 比如这里的函数, 或者封装成类, 再复杂的可能还需要工厂之类的模式
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2825 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 15:11 · PVG 23:11 · LAX 08:11 · JFK 11:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.