php工场模式讲解,PHP工厂模式示例代码详解

PHP工厂模式是我们最常用的实例化对象模式,这里分享一下 PHP 工厂模式的三种形式的示例代码详解:

// 简单工厂模式

interface ICar {

function run();

}

class BMWCar implements ICar {

public function run() {

echo 'bmw run!
';

}

}

class AuDiCar implements ICar {

public function run() {

echo 'audi run!
';

}

}

/**

* 简单工厂

*/

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!
';

}

}

class BlackBMWCar implements ICar {

public function run() {

echo 'black bmwcar run!
';

}

}

class WhiteAuDiCar implements ICar {

public function run() {

echo 'white audicar run!
';

}

}

class BlackAuDiCar implements ICar {

public function run() {

echo 'black audicar run!
';

}

}

// 提供一系列的接口

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

}

}

女程序员博客 , 版权所有丨本站采用BY-NC-SA协议进行授权 , 转载请注明PHP 工厂模式示例代码详解!

【声明】:本博客仅为分享信息,不参与任何交易,也非中介,所有内容仅代表个人观点,均不作直接、间接、法定、约定的保证,读者购买风险自担。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。

【关于安全】:任何 IDC 都有倒闭和跑路的可能,备份永远是最佳选择,服务器也是机器,不勤备份是对自己极不负责的表现,请保持良好的备份习惯。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值