为了账号安全,请及时绑定邮箱和手机立即绑定

PHP设计模式:简单工厂模式

标签:
PHP

设计模式是对面向对象设计中反复出现的问题的解决方案。以下是《大道PHP:LAMP+Zend+开源框架整合开发与实战》第10章介绍的几种常用设计模式。包括:简单工厂模式、单元素模式、观察者模式、命令模式、策略模式以及MVC模式。

一、简单工厂模式
简单工厂模式(Simple Factory Pattern)又被称为静态工厂方法模式(Static Factory Method Pattern),具体指创建一个类似于工厂的类,通过对该类中成员方法的调用返回不同类型的对象。
1、类图

https://img1.sycdn.imooc.com//5b16299f0001de9504430313.jpg

这里,抽象类Product定义了一个获取产品名称的成员方法getName(),Product抽象类的具体实现为之类ProductA和之类ProductB。工厂类ProductFactory 用来决定在什么时候创建并返回哪个产品类的实例化对象,使用时,只需把参数传递给其他成员的create()方法,就可以创建Product类的对象,无须考虑具体的生产细节。

2、代码

<?php
//抽象类Product
abstract class Product {
  abstract function getName();
}
 
//具体类ProductA
class ProductA extends Product {
  public function getName() {
    echo "I am ProductA";
  }
}
 
//具体类ProductB
class ProductB extends Product {
  public function getName() {
    echo "I am ProductB";
  }
}
 
// 工厂类ProductFactory
class ProductFactory {
  static function create($name) {
    switch ($name) {
      case "A":
        return new ProductA();
      case "B":
        return new ProductB();
    }
  }
}
 
$product=ProductFactory::create("A");
$product->getName();
echo "<br />";
$product=ProductFactory::create("B");
$product->getName();


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消