工厂设计模式是什么?

PHP 基础面试题
0
0
分享
推荐答案
展示答案

<?php //工厂设计模式提供获取某个对象的新实例的一个接口,同时使调用代码避免确定实际实例化基类的步骤。 class CD{ public $title = ''; public $band = ''; public $tracks = []; public function __construct(){ } public function setTitle($title){ $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 = ['What It Means', 'Brrr', 'Goodbye']; $cd = new CD(); $cd->setTitle($title); $cd->setBand($band); foreach($tracksFromExternalSource as $track){ $cd->addTrack($track); } print_r($cd->tracks); echo PHP_EOL; class enhancedCD{ public $title = ''; public $band = ''; public $tracks = []; public function __construct(){ $this->tracks[] = 'DATA TRACK'; } public function setTitle($title){ $this->title = $title; } public function setBand($band){ $this->band = $band; } public function addTrack($track){ $this->tracks[] = $track; } } class CDFactory{ public static function create($type){ $class = strtolower($type).'CD'; return new $class; } } $type = 'enhanced'; $cd = CDFactory::create($type); $cd->setBand($band); $cd->setTitle($title); foreach($tracksFromExternalSource as $track){ $cd->addTrack($track); } print_r($cd->tracks);

答案已隐藏