设为首页 加入收藏

WWW-4444KK-COM【首页★新址】WWW-4444KK-COM_日韩★WWW-4444KK-COM

当前位置: 主页 > www-W4444KK-com > Dreamweaver >

php的设计模式介绍之值东西模式(2)

时间:2012-12-18 09:37来源:网络整理 作者:管理员 点击:

此刻,需要注意以下几个方面: 掩护值东西的属性, 注:术语不行变的(Immutable): 在辞书中Immutable的界说是不答允或不易受影响。4444kk-com

PHP5通过new进行东西资源的赋值通报的是东西资源的指针就像我们在PHP4中通过指针通报一样,固然没有设定函数Dollar::amount(),当你使用面向东西进行编程的时候。www-4444kk-com

为了解决那个问题并实现一个专有东西Dollar的值。

我们必需使属性$amount的东西的所有属性的一个值在一般环境下不行变或不能改变,然后改变个中的一个变量,值东西并不是只能用在一个简单的架构上,但是每一个变量的变革都不会影响其它的变量实例, 正如以上你所看到的,否则属性值很容易被改变,说明它不被界说为可以处理惩罚多种货币类型的类,尽管你指定当前东西给多个变量,你也应该提供一个检察函数或者是访问ValueObject的属性的要领,参数Dollar::amount就已经被赋值了,而是创建并返回一个新的Dollar实例,但在东西的实例化期时, 对付价值设计模式稳定性是要害, 在结构函数中就对属性进行赋值, 相反地。

在这种环境下,在PHP5里面使用价值设计模式时,命名在面向东西编程中很是重要,任何对付一个ValueObject的变量amount的改变,让我们看看下一个例子: 相关文章: Phpnow的处事器软件集成套件的安装问题息争决要领 PHP措施如何数据库连接(2) PHP里实现汉字转区位码的示例代码 php的设计模式介绍之计谋模式(2) PHP开发文件系统实例讲解 PHP框架阐述 PHP+MYSQL网站开发中遇到的问题汇总(2) php设计模式介绍之单条模式 PHP+MYSQL留言本 PHP的实例措施:直接读取数据库信息的三种要领 点这里检察更多PHP教程 ,很明显, 解决方案: 高效的东西应该像PHP的整型那样运作:如果你把同一个东西资源赋值给两个差此外变量,是通过创建一个新的带有差别预期值的类的实例来完成的。

protected(和private)拒绝通过属性直接被访问。

这是一个问题,这就是ValueObject模式的方针地址, classDollar{ protected$amount; publicfunction__construct($amount=0){ $this-amount=(float)$amount; } publicfunctiongetAmount(){ return$this-amount; } publicfunctionadd($dollar){ returnnewDollar($this-amount+$dollar-getAmount()); } } 类里面的属性如果加上protected前缀,在编程中,在这里访问的数据类型为浮点型, 最有趣的变革是在Dollar::add()要领函数中, 简单来说,事实上,虽然, php的设计模式介绍之值东西模式(2) CND8学院 PHP教程 宣布日期:2012年12月17日 问题: 那么。

而函数Dollar::getAmount()只是提供一个访问Dollar属性的成果。

它也可以实现重要的商务逻辑应用,并且易于创建呢,这个术语暗示一个一旦被设置就不能改变的值,此外类是访问不了的。

让我们优化一个PHP5的ValueObject的实例并创建一个较好的Dollar类界说,并不是直接改变$this-amount变量的值从而会改变已存在的Dollar东西实例,php4和php5是有区此外, PHP5样本代码: 既然我们开始用PHP5编写代码, 去掉任何一个会改变属性值的方法函数(setter),并且可以添加一些与这个类相关的函数,就类似于: publicsetAmount($amount) { $this-amount=$amount; } 一样。

另一个变量仍然不受影响, 以上三步创建了一个稳定的值,但是在PHP语言的没有提供参数不行改变的成果的环境下,选择一个独一的货币类型作为这个类的名字,因为PHP4的赋值操纵相当于对东西做了一个拷贝,你该如作甚Date或Dollar这样一些描述简单的应用界说一个高效的类,你常常需要创建了一个“setter”函数,PHP4操纵所有的东西都是遵循ValueObjects东西纪律的。

所以为了在PHP4中实现ValueObjects设计模式你需要冲破你细心地培养的通过指针赋值来创建、通报、提取东西的习惯,这个值一旦被初始化设置之后就不能被改变,禁止被直接访问, 凡是,你完全可以结合属性的可见性与获得和设置要领来实现。

执行ValueObject时,上文中提高的最初那个$this-amount变量的值从未改变。

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
用户名: 验证码: 点击我更换图片
栏目列表
推荐内容