例: userName = getUrlParameter().name;
改成 getUserName(){ return getUrlParameter().name; }
userName = getUserName();
1
zhy0216 2019-02-20 11:24:19 +08:00 via iPhone 2
有些要有些不要
你的例子感觉要 一方面这个函数可以在多处使用 另一方面万一以后决定 url 传 userId 这里也可以统一处理 |
2
yesterdaysun 2019-02-20 11:54:59 +08:00 1
我感觉单看这个例子是不需要的, 因为变量 userName 已经说明含义了, 而赋值语句也只是一个简单的获取成员变量, 本身语义就有 get 的意思, 封装了一下, 只是把这个隐含的 get 显式的写出来了.
比如对我来说读这段代码, 脑子里读出来的是"username = get name from url parameter", 如果用函数就是"username = get user name", 我感觉是差不多的. 不过标题说这是意义不明确的赋值语句, 说明读它的人可能是不能一眼理解, 那封装成函数是一个可行的方法, 前提是确实能感受到这种可读性的提升, 否则就是过度封装, 毕竟可读性对不同的人来说是不一样的, 还是要从真正读代码的人的角度去抉择 但是如果这段赋值经常重复, 或者有好几个类似的东西, 那就需要考虑封装, 而且要根据重复的数量和范围用不同的封装方式, 比如这里的函数, 或者封装成类, 再复杂的可能还需要工厂之类的模式 |