background image

  除了允许您的实现隐藏在更改之后外,使用公共访问方法而非直接公开字
段将允许您在基本实现的基础上进行构建,方法为覆盖访问方法的实现以执行
略微不同于父方法的行为。它还允许您构建一个抽象实现,从而使实际实现委托
给覆盖基本实现的类。

  坏习惯:公开公共字段

 

  在清单

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 对象中,则需要修改所有

代码以适应更改。