将 getter 和 setter 组合成 gettersetter

发布于 2024-09-16 04:40:07 字数 179 浏览 3 评论 0原文

就“好代码”而言,将 set 和 get 方法合而为一是否可以接受?像这样:

public function dir($dir=null) {
    if (is_null($dir)) return $this->dir; 
    $this->dir = $dir; 
}

In terms of "good code", is it acceptable to combine set and get methods into one? Like this:

public function dir($dir=null) {
    if (is_null($dir)) return $this->dir; 
    $this->dir = $dir; 
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

り繁华旳梦境 2024-09-23 04:40:07

这是相当可怕的。一方面,它使得无法将该值设置为 null。

在区分 undefined 和 null 的语言中,使用未定义的值而不是 null 来执行此操作是合理的。

返回或未返回的内容之间的不匹配在许多语言中甚至是无效的。无论哪种情况,为什么不返回它,以允许 x.dir = y.dir = someValue 的合理链接?但这是一个小问题,我的第一段是我的主要答案。

It's pretty dreadful. It makes it impossible to set the value to null, for one thing.

In a language that distinguished undefined from null, then it would be reasonable to do this with that undefined value, rather than null.

The mismatch between something being returned or not isn't even valid in many languages. In either case, why not return it anyway, to allow reasonable chaining of x.dir = y.dir = someValue? But that's a nick-pick, my first paragraph is my main answer.

ˉ厌 2024-09-23 04:40:07

我最初的想法是,代码更难阅读,因此更难维护。我已经达到了使用 C# 的 auto 属性或仅使用公共字段的程度。

My initial thought is no the code is harder to read and therefore maintain. I have gotten to where I either use C#'s auto property or just a public field.

星光不落少年眉 2024-09-23 04:40:07

这种模式至少在 jQuery 中很常见;我想说这很好。

This pattern is at least very common in jQuery; I'd say it is fine.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文