PHP中什么是工厂模式以及工厂方法模式?

工厂方法模式核心是工厂类不再负责所有对象的创建,而是将具体创建的工作交给子类去做,成为一一个抽象工厂角色,它仅负责给出具体工厂类必须实现的接口,而不接触哪一个产品类应当被实例化这种细节,我们可以深入探讨:

相关推荐:《PHP中什么是设计模式?什么是单例?怎么用?》

工厂:

$a = new Dog('abc');

登录后复制

接口中定义一一些方法

实现接口的类实现这些方法

立即学习“PHP免费学习笔记(深入)”;

工厂类:用以实例化对象

优点:为系统结构提供了灵活的动态扩展机制。方便维护

我们以代码演示什么是工厂模式,首先新建一个文件,我们在文件里面创建一个接口,接口里面有两个方法,紧接着我们写两个类实现此接口,然后我们需要把刚刚定义的两个方法写出来,然后我们在写一个类,那么,我们如何将他们写在一个工厂中,通过工厂创建我们定义的两个对象,我们先建立一个工厂类,然后在类里面写一个静态方法,然后给我们传递一个类型,然后我们来选择类型,如果我们的类型是person那么我们就创建一个person,如果说我们要创建人类的对象,我们只需要通过工厂来创建就行了,具体代码如下:

<?php interface Skill{function family();function pome();}class Person implements Skill{  function family(){  echo '如果努力有用的话,还要天才干什么
';}   function pome(){echo '爱恨痴狂,抵不过沧海一笑';}}class JingLing implements Skill{  function family( ){  echo '为什么会痛苦,一直微笑就好了
' ;}  function buy(){  echo '嘴上说不要,但你的眼睛很诚实嘛
';}}class Factory {  static function createHero($type)  {    switch ($type) {      case'person' :        return new Person();      break;      case'jingling' :        return new JingLing();      break;}}}$person = Factory::createHero('person');$jing = Factory::createHero('jingling');

登录后复制

以上就是我们所谓的工厂模式;

工厂方法:

工厂方法模式核心是工厂类不再负责所有对象的创建,而是将具体创建的工作交给子类去做,成为一一个抽象工厂角色,它仅负责给出具体工厂类必须实现的接口,而不接触哪一个产品类应当被实例化这种细节

根据上述代码,我们了解我们的工厂模式要负责创建对象,我们以代码为例:规定一个接口,同样两个方法,紧接着我们写两个类,而我们建立的工厂类只负责规定接口,具体的实现交给子类,具体我们以代码为例:

<?php interface Tell{function pome();function receive();}class shiju implements TeLL{function pome( ){echo '没有心,就不会受伤';}function receive( ){echo'守护爱人的心,因恐惧失去而无悔';}}class HuaWei implements TeLL{function call(){echo '不知道你的名字,但知道你的死期';}function receive( ){echo '花有再开的那天,人有重逢的时候吗?';}}//工厂类只负责规定接口,具体的实现交给子类interface Factory{  static function createPhone( );}class XiaoFactory implements Factory{  static function createPhone( )  return new XiaoMi ();}}class HuaWeiFactory implements Factory{static function createPhone(){  return new HUawei();}}

登录后复制

推荐学习:《PHP视频教程》

以上就是PHP中什么是工厂模式以及工厂方法模式?的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2510935.html

(0)
上一篇 2025年3月5日 14:20:58
下一篇 2025年2月25日 08:01:37

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • PHP中什么是观察者模式?如何运用?

    对于观察者模式,我们可能并不是那么耳熟闻详,它是一种事件系统,意味着这一模式允许某个类观察另一一个类的状态,当被观察的类状态发生改变的时候,观察类可以收到通知并且做出相应的动作;观察者模式提供了避免组件之间紧密耦合的另一种方法;因此我们就一…

    2025年3月5日
    200
  • PHP中Error与Exception的区别是什么

    网上error与exception区别的资料大多是java的解释,貌似php的异常处理过程跟java差不多,下面就跟着小编一起学习php中的error与exception的区别与捕获,需要的小伙伴可以参考参考。 写了一段 JSON 解析的代…

    2025年3月5日
    200
  • 如何使用memory_limit限制PHP进程的内存使用

    虚拟主机php中memory_limit是php单个脚本单次执行最大可用内存限制;默认限制为256mb,最大可调整为512mb。下面由小编介绍使用memory_limit限制php进程的内存使用方法。 memory_limit 顾名思义,即…

    2025年3月5日
    200
  • PHP数组中什么是查找算法?如何查找?

    php中查找算法有很多种,你知道的有哪几种呢?对于查找算法的含义你又是如何理解的?本篇文章就是带你去探索关于算法的一些奥秘,一起探讨数组中什么是查找算法?如何查找? 相关推荐:在PHP中什么是门面模式?他的优点是什么?适用场景是什么? 查找…

    2025年3月5日
    200
  • html为什么看不到php代码

    html看不到php代码是因为所有PHP代码都在网站发送到浏览器之前在服务器上执行,而浏览器收到的所有内容都是HTML内嵌的PHP的结果。 本文操作环境:windows7系统、PHP7.1版,DELL G3电脑 html为什么看不到php代…

    2025年3月5日
    200
  • php正则怎么去掉 br

    php正则去掉br的方法:首先创建一个PHP示例文件;然后通过str_replace函数以及正则表达式“str_replace(“”,””,$htmlstr);”替换br即可。 本文操作环境:…

    2025年3月5日
    200
  • php怎么根据路径删除文件

    php根据路径删除文件的方法:1、通过“function deleteDir($dir){…}”方法删除一个路径下的文件夹和文件;2、通过“function deldir($path){…}”删除。 本文操作环境:w…

    2025年3月5日
    200
  • php json怎么转csv

    php json转csv的方法:首先创建一个PHP示例文件;然后通过“foreach ($json_obj as $fields) {fputcsv($fp, $fields);}”方法将JSON转换为CSV即可。 本文操作环境:windo…

    2025年3月5日
    200
  • php怎么去掉数组中的空元素

    php去掉数组中的空元素的方法:1、使用“function myfunction($v) {…}”方法去除空元素;2、使用“foreach ($urlArr as $key => $val) {…}”方法去掉数…

    2025年3月5日
    200
  • php图片存放路径怎么设置

    php图片存放路径的设置方法:首先在html表单中设置“enctype=”multipart/form-data””;然后通过picture获取临时文件名以及上传文件名;最后将上传文件储存到指定位置即可。 本文操作环…

    2025年3月5日
    200

发表回复

登录后才能评论