PHP封装二:获取方法和设置方法

为了保护封装,同时提供可访问性,OOP设计建议使用获取方法(getters)和设置方法(setters),也分别称为存取方法(accessors)和修该方法(mutators)。不建议直接访问一个类,通过赋值来得到或修改属性,这些工作完全可以有获取方法/设置方法来完成。一般地,使用获取设置方法必须适度;滥用会破坏封装;

举例说明:

<?php
/**
 * Create by  PhpStorm
 * Author : wqzbxh
 * Date : 2019/11/28
 * time :22:10
 */
Class GetSet
{
    private $dataWareHouse;

    function __construct()
    {
        $this->setter(200);
        $got = $this->getter();
        echo $got;
    }
    private function getter()
    {
        return $this->dataWareHouse;
    }

    private function setter($setValue)
    {
        $this->dataWareHouse=$setValue;
    }
}
$woker = new GetSet();

获取/设置方法时私有的,所以这个访问是封装的,另外,在这实现中,设置方法放在类中,所以他当于一个数据容器。

对于面向对象系统中的数据处理,Allen Holub 曾给出以下建议:

不要直接请求完成一个工作所需要的信息,而应当请求拥有这个信息的对象为你完成工作;

 

在GetSet类中的例子中,通过实例化类:

$woker = new GetSet();

就做到了这一点。他没有暴漏实现细节。不过单独看来GetSet类好像没有太大用户,因为想要指定一个值,唯一的途径就是在类中硬编码实现。嘿嘿

从某种程度上来说,设计模式的目的时建立对象之间的通信链路,很多所谓的OOP并没有正确的使用获取设置方法,允许公开的访问获取方法和设置方法只会破坏封装。

 

保持封装时保持对象类之间的通信的过程时设计模式的一个工作。要找出一种方法来通信,同时不破坏封装,这可能很困难(我我自己在很多实际开发中就是无限破坏,今后改正),,所以设计模式就相当于一种“秘诀”,可以指出如何使用可通信的类建立一个程序。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章