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"));
$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) {