美文网首页
PHP工厂设计模式

PHP工厂设计模式

作者: 老衲灬 | 来源:发表于2018-07-10 22:24 被阅读106次
1、什么是工厂设计模式

1)根据传递不同的类名参数,返回不同类的对象;
2)工厂模式,就是生产各种的不同类的对象;
3)工厂模式,改变了在类外使用new关键字创建对象的方式,改成了在工厂类中创建类的对象。
4)在类的外部我们无法控制类的行为,但在类内部自己可以控制类的行为。

2、工厂设计模式的要求

1)工厂类中的方法,应该是公共的静态的方法;
2)该方法功能:就是根据传递的不同参数,去创建不同的类实例;
3)提示:工厂设计模式,一般会与单例设计模式搭配使用。

3、实例:工厂设计模式的简单应用 图片.png
4、实例:单例工厂类的实现
class Student{
    public $name = "张三";
    public $age = 20;
    public function __construct(){
        echo $this->name."的年龄是".$this->age."岁"."<br>";
    }
}
class Teacher{
    public $name = "李四";
    public $edu = "湖南大学";
    public function __construct(){
        echo $this->name."毕业于".$this->edu."<br>";
    }
}
//定义最终单例工厂类
//工厂类生产的对象是单例
final class Factory
{
    //私有的静态的保存不同类对象的属性
    private static $obj= [];
    //私有的构造方法:阻止类外new对象
    private function __construct(){}
    //私有的克隆方法:阻止类外clone对象
    private function __clone(){} 
    //公共的静态的创建不同类对象的方法
    public static function getInstance($className){
        //判断传递的当前类的对象是否存在
        if(!isset(self::$obj[$className])){
            self::$obj[$className] = new $className;
        }
        //返回当前类的对象
        return self::$obj[$className];
    }
}
$obj1 = Factory::getInstance('Student');
$obj2 = Factory::getInstance('Student');
$obj3 = Factory::getInstance('Teacher');
$obj4 = Factory::getInstance('Teacher');
var_dump($obj1,$obj2,$obj3,$obj4);

结果如下:


图片.png

相关文章

  • 《PHP设计模式大全》系列分享专栏

    php设计模式介绍之编程惯用法第1/3页 php设计模式介绍之值对象模式第1/5页 介绍php设计模式中的工厂模式...

  • PHP-浅谈单例模式和工厂模式

    PHP中常用的设计模式有单例模式、工厂模式(简单工厂模式、工厂方法模式和抽象工厂方法模式)、适配模式、策略模式。 ...

  • 策略模式和工厂模式在促销系统下的应用

    策略模式和工厂模式在促销系统下的应用 标签: 设计模式 策略模式 工厂模式 促销系统 php 设计模式为我们提供了...

  • ThinkPHP设计模式与Trait技术

    阅读原文 设计模式 单例模式 工厂模式 对象注册树 示例 运行 Trait技术 自 PHP 5.4.0 起,PHP...

  • php 工厂模式

    承接上篇php模式设计之 单例模式,(虽然好像关系不大)。今天讲述第二种基础的模式设计——工厂模式。 那么何为工厂...

  • PHP完整实战23种设计模式

    前言设计模式是面向对象的最佳实践实战PHP实战创建型模式创建型 Factory Method(工厂方法)-工厂模式...

  • PHP完整实战23种设计模式

    前言 设计模式是面向对象的最佳实践 实战 PHP实战创建型模式 单例模式 工厂模式 抽象工厂模式 原型模式 建造者...

  • 设计模式全集 - 目录导视

    设计模式全集 - 目录导视 基础信息排版规范PHP 设计模式说明 创建型抽象工厂模式(Abstract Facto...

  • php设计模式(1) 工厂模式

    php设计模式(1) 工厂模式 工厂模式 优点 将创建具体对象的步骤简化了,你只需要告诉工厂你需要什么,其他的都由...

  • PHP工厂设计模式

    1、什么是工厂设计模式 1)根据传递不同的类名参数,返回不同类的对象;2)工厂模式,就是生产各种的不同类的对象;3...

网友评论

      本文标题:PHP工厂设计模式

      本文链接:https://www.haomeiwen.com/subject/hktcpftx.html