예제 #1
0
        echo "construct " . $name . "\n";
        $this->_name = $name;
    }
    public function getName()
    {
        return $this->_name;
    }
}
class ArtistFactory
{
    private $_artists = array();
    public function getArtist($name)
    {
        if (isset($this->_artists[$name])) {
            return $this->_artists[$name];
        } else {
            $this->_artists[$name] = new Artist($name);
            return $this->_artists[$name];
        }
    }
}
$objArtistFactory = new ArtistFactory();
$objCD1 = new CD();
$objCD1->setTitle("title1");
$objCD1->setArtist($objArtistFactory->getArtist("artist1"));
$objCD2 = new CD();
$objCD2->setTitle("title2");
$objCD2->setArtist($objArtistFactory->getArtist("artist2"));
$objCD3 = new CD();
$objCD3->setTitle("title3");
$objCD3->setArtist($objArtistFactory->getArtist("artist1"));
예제 #2
0
파일: factory.php 프로젝트: jabouzi/projet
        $this->title = $title;
    }
    public function setBand($band)
    {
        $this->band = $band;
    }
    public function addTrack($track)
    {
        $this->tracks[] = $track;
    }
}
$title = 'Waste of a Rib';
$band = 'Never Again';
$tracksFromExternalSource = array('What It Means', 'Brrr', 'Goodbye');
$cd = new CD();
$cd->setTitle($title);
$cd->setBand($band);
foreach ($tracksFromExternalSource as $track) {
    $cd->addTrack($track);
}
class enhancedCD
{
    public $title = '';
    public $band = '';
    public $tracks = array();
    public function __construct()
    {
        $this->tracks[] = 'DATA TRACK';
    }
    public function setTitle($title)
    {