除了允许您的实现隐藏在更改之后外,使用公共访问方法而非直接公开字
段将允许您在基本实现的基础上进行构建,方法为覆盖访问方法的实现以执行
略微不同于父方法的行为。它还允许您构建一个抽象实现,从而使实际实现委托
给覆盖基本实现的类。
坏习惯:公开公共字段
在清单
1 的坏代码示例中,Person 对象的字段被直接公开为公共字段而
非使用访问方法。虽然此行为十分诱人,尤其对于轻量级数据对象来说更是如此
但是它将对您提出限制。
清单
1. 公开公共字段的坏习惯
classPerson
{
public$prefix;
public$givenName;
public$familyName;
public$suffix;
}
$person=newPerson();
$person->prefix="Mr.";
$person->givenName="John";
echo($person->prefix);
echo($person->givenName);
?>
如果对象有任何更改,则使用该对象的所有代码也都需要更改。例如,如果
某人的教名、姓氏和其他名字被封装到
PersonName 对象中,则需要修改所有
代码以适应更改。