我已经阅读了很多关于Value Objects的C#示例,我知道它是一个由它的值标识的"对象".如果值更改,则对象为"new".
但是,当涉及到PHP时,这似乎没有意义......或者我只是没有建立连接.
值对象只是一个字符串吗?
dec*_*eze 26
为了将其置于上下文中,在许多OO语言中,对象通过其身份进行比较.在伪代码中:
bar = new Foo
baz = new Foo
bar == baz // false
Run Code Online (Sandbox Code Playgroud)
即使两个对象基本相同,如果你只看它们的值,它们也不被认为是相同的,因为它们是单独的实例.展示:
bar = new Foo
baz = bar
bar == baz // true
Run Code Online (Sandbox Code Playgroud)
现在:
在计算机科学中,价值对象是一个小的简单对象,如金钱或日期范围,其等同性不是基于身份.
这将是"价值对象"的演示:
address1 = new Address('Main street 42')
address2 = new Address('Main street 42')
address1 == address2 // true
Run Code Online (Sandbox Code Playgroud)
因为值相同,所以两个对象都被认为是相等的,即使它们是单独的实例.
PHP没有单独的"值对象"概念,它只有一种类型的对象.它的比较运算符可以做出这样的区分:
使用比较运算符(==)时,会以简单的方式比较对象变量,即:如果两个对象实例具有相同的属性和值,则它们是相等的,并且是同一类的实例.
http://www.php.net/manual/en/language.oop5.object-comparison.php
例如:
$address1 = new Address('Main street 42');
$address2 = new Address('Main street 42');
$address1 == $address2; // true equal...
$address1 === $address2; // false ...but not identical
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3840 次 |
| 最近记录: |