现在让我们从一个能够使用角色属性模式解决的问题开始。假设你有一个XML文档,就像Listing A里的一样。下面的文档显示的是一个带有多个地址组件的简单客户记录:
Listing A: customer.xml
<Customer>
<Name>Widgets R Us</Name>
<Address>
<Street>1234 Broadway</Street>
<City>New York</City>
<State>NY</State>
<ZipCode>10010</ZipCode>
</Address>
<Address>
<Street>900 N Michigan Ave</Street>
<City>Chicago</City>
<State>IL</State>
<ZipCode>60614</ZipCode>
</Address>
<Address>
<Street>3000 Cumberland Blvd</Street>
<City>Atlanta</City>
<State>GA</State>
<ZipCode>30039</ZipCode>
</Address>
</Customer>
这个文档所存在的问题是,这里有三个地址。如果不查看数据的话,就很难区分这三个元素之间的区别。