首页 >后端开发 >php教程 > 正文

PHP工厂模式的三种形式的示例代码详解

原创2017-03-18 14:39:0112181
PHP工厂模式的三种形式的示例代码详解

<?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();
	}
}

相关文章:

浅析php工厂模式

php工厂模式简单使用说明

解析PHP工厂模式的好处

以上就是PHP工厂模式的三种形式的示例代码详解的详细内容,更多请关注php中文网其它相关文章!

php中文网最新课程二维码

声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理

  • 相关标签:PHP工厂模式
  • 相关文章

    相关视频


    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论条评论
    baby不要哭泣
  • baby不要哭泣· 2017-03-18 09:27:201楼
  • 把各种通用的类打包好。

  • 专题推荐

    作者信息

    黄舟

    人生最曼妙的风景,竟是内心的淡定与从容!

    最近文章
    php实现字符串匹配算法之sunday算法的示例3314
    css中关于hideFocus的使用详解3363
    JavaScript中filter函数的详细介绍3127
    推荐视频教程
  • javascript初级视频教程javascript初级视频教程
  • jquery 基础视频教程jquery 基础视频教程
  • 视频教程分类