Explication détaillée de trois formes d'exemple de code du modèle d'usine PHP

黄舟
Libérer: 2023-03-06 16:58:01
original
3327 Les gens l'ont consulté

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 &#39;bmw run!<br/>&#39;;
	}
}

class AuDiCar implements ICar {
	
	public function run() {
		echo &#39;audi run!<br/>&#39;;
	}
}

/**
 * 简单工厂
 */
class FactorySimple {
	
	/*
	public static function createBmw() {
		return new BMWCar();
	}
	
	public static function createAudi() {
		return new AuDiCar();
	}
	*/
	
	public static function createCar($type) {
		switch($type) {
			case &#39;bmw&#39;:
				return new BMWCar();
			case &#39;audi&#39;:
				return new AuDiCar();
			default:
				throw new Exception(&#39;type error!&#39;);
		}
	}
}


// ------------------------------------------------------
// ------------------------------------------------------

// 工厂方法模式
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 &#39;white bmwcar run!<br/>&#39;;
	}
}

class BlackBMWCar implements ICar {
	
	public function run() {
		echo &#39;black bmwcar run!<br/>&#39;;
	}
}

class WhiteAuDiCar implements ICar {
	
	public function run() {
		echo &#39;white audicar run!<br/>&#39;;
	}
}

class BlackAuDiCar implements ICar {
	
	public function run() {
		echo &#39;black audicar run!<br/>&#39;;
	}
}

// 提供一系列的接口
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();
	}
}
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal