直接调用variable属性与getter/setter方法的比较-OOP Design [英] Calling the variable property directly vs getter/setters - OOP Design

查看:117
本文介绍了直接调用variable属性与getter/setter方法的比较-OOP Design的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道这可能是主观的,但是我阅读了 Google for PHP的优化页面,并且他们建议直接使用variable属性,而无需使用getter和setter.可以理解,我可以看到性能的提高,但这真的是一个好的设计实践吗?

I know this is probably subjective but I read this optimization page from Google for PHP and they suggest use the variable property directly without the need of getters and setters. Understandably I see the performance gain in this but is this really a good design practice to follow?

使用getter/setter的示例:

Their Example using getter/setter:

class dog {
  public $name = '';

  public function setName($name) {
    $this->name = $name;
  }

  public function getName() {
    return $this->name;
  }
}

$rover = new dog();
$rover->setName('rover');
echo $rover->getName();

建议的优化:

$rover = new dog();
$rover->name = 'rover';
echo $rover->name;

这将是我设计过程中的一个可喜变化,因为我认为需要消气剂/阻气剂,但是这样做可能会遇到哪些其他障碍/好处?

This would be a welcome change in my design process as I see the need for getters/setters going away, but what other hurdles/benefits might occur in doing this?

推荐答案

一个简单的答案,恐怕但我建议以下几点: 如果通过将此属性公开给其他用户,您的类没有封装问题(强制执行业务逻辑等),则完全可以这样做.

A boilerplate answer, I'm afraid but I would suggest the following: If you have no encapsulation problems for your class (enforcing business logic, etc.) by exposing this property to other users, it is perfectly ok to do so.

这篇关于直接调用variable属性与getter/setter方法的比较-OOP Design的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆