小编nam*_*orm的帖子

为什么分别坚持get-set而不是car.speed()和car.speed(55)?

除了明确清晰,我们为什么要坚持:
car.getSpeed()car.setSpeed(55)
当这可以作为很好: car.speed()car.speed(55)

我知道get()和set()对于通过将所有内容保存在一个地方来保持对数据成员的任何更改都是有用的.

另外,显然,我理解car.speed()并且car.speed(55)相同的功能,这使得这个错误,但是在PHP和Zend Framework中,相同的操作用于GET,POST和回发.
在VB和C#有"属性",和许多被使用,多少我听说纯粹主义者的厌恶,并有东西在类似于Ruby,5.times.each,.to_i
你有操作符重载,多重继承,虚拟函数C++,某些组合可以驱使任何人坚果.

我的意思是说,有太多的范例和方法可以完成任务,似乎没有人尝试过我提到的特定组合.

至于我,我的理由是阅读代码简短而清晰.
我错了,稍微错了,这只是奇怪的,所以不使用,或者还有什么?

如果我仍然决定保持正确,我可以使用car.speed()car.setSpeed(55).
这有什么不对(只是省略"获取")?

谢谢你的任何解释.

oop getter setter encapsulation car-analogy

12
推荐指数
2
解决办法
733
查看次数

如何在Zend Framework中使用名称空间?

命名空间非常有用,直到最近的几个版本AFAIK,PHP才支持它们.
当我使用Zend Framework,我要记住很长的名字用下划线 -样Zend_Form_Element_ButtonZend_Form_Decorator_HtmlTag等等.
如果我使用命名空间,这可能是可能的,而且更容易:

namespace Zend {
  class something {
    // ...
  }
}

namespace Zend\Form {
  class something {
    // ...
  }
}

namespace Zend\Form\Element {
  class Button {
    // ...
  }
}

要使用它,我这样做:

use Zend\Form\Element\Button;
$btn1 = new Button();

所以我的问题是,考虑到自动加载器系统和许多存在于Zend Framework中的元级"黑魔法",使用命名空间重写代码结构,然后拥有更合理的类名,是否是微不足道的? 问题不在于类名的长度 - Eclipse/Netbeans/Aptana处理得非常好,这是长名称的刺激性.如果您使用的某些类在名称中具有类似的部分,则在一段时间后 会变得混乱. 由于ZF是开源许可的,我不认为Zend会介意代码的命名空间版本,如果仅仅重命名和一些代码的重组可以实现这一点.


zend-framework namespaces

10
推荐指数
1
解决办法
1万
查看次数