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

2019-02-20 11:11:51 +08:00
 TomVista

例: userName = getUrlParameter().name;

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

userName = getUserName();

993 次点击
所在节点    问与答
2 条回复
zhy0216
2019-02-20 11:24:19 +08:00
有些要有些不要

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

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

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

但是如果这段赋值经常重复, 或者有好几个类似的东西, 那就需要考虑封装, 而且要根据重复的数量和范围用不同的封装方式, 比如这里的函数, 或者封装成类, 再复杂的可能还需要工厂之类的模式

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/536813

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX