PHPModèle d'usineExplication détaillée des trois formes d'exemple de code
<?php // 简单工厂模式 interface ICar { function run(); } class BMWCar implements ICar { public function run() { echo 'bmw run!<br/>'; } } class AuDiCar implements ICar { public function run() { echo 'audi run!<br/>'; } } /** * 简单工厂 */ class FactorySimple { /* public static function createBmw() { return new BMWCar(); } public static function createAudi() { return new AuDiCar(); } */ public static function createCar($type) { switch($type) { case 'bmw': return new BMWCar(); case 'audi': return new AuDiCar(); default: throw new Exception('type error!'); } } } // ------------------------------------------------------ // ------------------------------------------------------ // 工厂方法模式 interface CreateCar { //工厂类接口 function create(); } /** * bmw car factoyr */ class BmwFactory implements CreateCar { public function create() { return new BMWCar(); } } /** * audi car factory */ class AuDiFactory implements CreateCar { public function create() { return new AuDiCar(); } } // ------------------------------------------------------ // ------------------------------------------------------ // 抽象工厂模式 class WhiteBMWCar implements ICar { public function run() { echo 'white bmwcar run!<br/>'; } } class BlackBMWCar implements ICar { public function run() { echo 'black bmwcar run!<br/>'; } } class WhiteAuDiCar implements ICar { public function run() { echo 'white audicar run!<br/>'; } } class BlackAuDiCar implements ICar { public function run() { echo 'black audicar run!<br/>'; } } // 提供一系列的接口 interface ICarCreate { function createBmw(); function createAuDi(); } /** * create white car */ class WhiteCarFactory implements ICarCreate { // white bmw public function createBmw() { return new WhiteBMWCar(); } // white audi public function createAuDi() { return new WhiteAuDiCar(); } } /** * create black car */ class BlackCarFactory implements ICarCreate { // black bmw public function createBmw() { return new BlackBMWCar(); } // black audi public function createAuDi() { return new BlackAuDiCar(); } }
Articles connexes :
Un bref analyse du modèle d'usine PHP
Instructions simples pour l'utilisation du modèle d'usine PHP
Analyse des avantages du modèle d'usine PHP
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!