Example #1
0
{
    private $emailAddress;
    public function getEmailAddress()
    {
        return $this->emailAddress;
    }
    public function setEmailAddress($address)
    {
        $this->emailAddress = $address;
    }
}
$emailAddress = new EmailAddress();
/* Populate the EmailAddress object */
$address = new AddressDisplay();
/* Here's the assignment code, where I'm assigning values from one object to another */
$address->setAddressType("email");
$address->setAddressText($emailAddress->getEmailAddress());
//适配器模式
class EmailAddressDisplayAdapter extends AddressDisplay
{
    public function __construct($emailAddr)
    {
        $this->setAddressType("email");
        $this->setAddressText($emailAddr->getEmailAddress());
    }
}
$email = new EmailAddress();
$email->setEmailAddress("*****@*****.**");
$address = new EmailAddressDisplayAdapter($email);
echo $address->getAddressType() . "\n";
echo $address->getAddressText();
Example #2
0
<?php

require_once 'classes.php';
$email1 = new EmailAddress();
$email1->setEmailAddress("*****@*****.**");
$email2 = new EmailAddress();
$email2->setEmailAddress("*****@*****.**");
$email3 = new EmailAddress();
$email3->setEmailAddress("*****@*****.**");
$emailAddresses = array($email1, $email2, $email3);
echo "\nEmail Addresses:  \n\n";
$itr = new EmailAddressIterator($emailAddresses);
while ($itr->hasNext()) {
    $item = $itr->next();
    echo $item->getAddressText() . "\n";
}
echo "\nPhysical Addresses:  \n\n";
/* Now add physical addresses... */
$pa1 = new PhysicalAddress("123 Any St.", "Anytown", "NE", "00000");
$pa2 = new PhysicalAddress("123 Any Blvd.", "Anytropolis", "MN", "00000");
$physicalAddresses = array($pa1, $pa2);
$itr2 = new PhysicalAddressIterator($physicalAddresses);
while ($itr2->hasNext()) {
    $item = $itr2->next();
    echo $item->getAddressText() . "\n";
}
/* Now the compound iterator! */
echo "\nIterating through both types of addresses:\n\n";
$itr3 = new PersonAddressIterator($emailAddresses, $physicalAddresses);
while ($itr3->hasNext()) {
    $item = $itr3->next();