美文网首页
深入thinkphp的工厂模式

深入thinkphp的工厂模式

作者: Stevennnmmm | 来源:发表于2019-04-28 17:52 被阅读0次

工厂模式

       这个可能对很多编程小伙伴来说都不了解工厂模式,很多人了解了工厂模式又觉得没必要,本篇文章将会讲解工厂模式的原理,作用,目的。很多面试的人直接认为工厂模式就是实现接口,这种肯定是错误的认知。实现接口属于工厂模式,工厂模式更是一种管理类的实例的方式。

目的:工厂类调用自身静态方法来生产对象实例

1.产品:类的实例

2.原料:子类的名称

2.生产方式:调用工厂类的静态方法

.工厂模式有一个关键的构造,根据一般原则命名为Factory的静态方法,然而这只是一种原则,虽然工厂方法可以任意命名这个静态还可以接受任意数据的参数,必须返回一个对象

一个最基本的工厂模式:

thinkphp的工厂模式:ReflectionClass反射类机制+reflecationMethod反射方法实现工厂模式

    简单一点的概念讲解:将工厂模式类中返回实例化部分用reflecationClass        和 ReflectionMethod代替了。

1.简单举例,我们在引入config文件时候,会判断引入文件的类型,默认支持json,php,ini等多种文件类型,此时就用到了工厂模式的设计理念。


在此处做一些说明讲解一下:

首先传入的也就是工厂类名,和之前举例说明的原料相同。

invokeClass中存在两个逻辑:

1,是通过reflecationMethod反射方法来判断是否存在__make,相当于程序逻辑返回的实例化,在很多核心类库都有存在的这个方法。

2.当要实例化本身的类中并不存在__make方法,就借助reflecationClass方法中的newinstanceArgs去实例化本身

在这个地方我借鉴一下bat的行业大佬一句话,config这里的应用逻辑写的不是恰如其分的,一点设计理念都没表达出来,使用了工厂模式却在工厂之外新开流水线,简直违背了工厂模式设计初衷呀

之前是在csdn上有单独开放的博客:一个很帅的程序员,已经停止更新,后续文章将继续在此处更新,希望广大的同行对文章的错误能给予点评,本套thinkphp深度解剖参照慕课网讲师singwa的课程做出的笔记加上个人的理解上的升华,有兴趣的看客可去慕课网订阅观看。

相关文章

  • 深入thinkphp的工厂模式

    工厂模式 这个可能对很多编程小伙伴来说都不了解工厂模式,很多人了解了工厂模式又觉得没必要,本篇文章将会讲解工...

  • 设计模式:抽象工厂模式,结合类图秒懂!

    通过前篇文章《设计模式:工厂模式,解除耦合的利器》的介绍,我们对工厂模式有了深入的了解,今天继续介绍一种特殊的工厂...

  • ThinkPHP vendor 方法导入第三方类库

    ThinkPHP 3.2 vendor()方法的深入研究及Phpqrcode的正确扩展 ThinkPHP vend...

  • 深入理解建造者模式 ——组装复杂的实例

    历史文章回顾: 设计模式专栏 深入理解单例模式 深入理解工厂模式 历史优质文章推荐: 分布式系统的经典基础理论 可...

  • 深入理解工厂模式

    Java面试通关手册(Java学习指南,欢迎Star,会一直完善下去,欢迎建议和指导):https://githu...

  • 常用设计模式

    设计模式 工厂模式 工厂模式思路上分:简单工厂模式,工厂模式, 抽象工厂模式// 抽象工厂模式可以代替工厂模式,做...

  • 工厂模式

    工厂模式细分三种:简单工厂模式、工厂模式、抽象工厂模式。 工厂模式相当于抽象了简单工厂模式的工厂类,而抽象工厂模式...

  • 工厂模式&&策略模式

    通过面向对象的封装,继承和多态来降低程序的耦合度。下面就让我们来深入学习这个模式。 工厂模式:客户类和工厂类分开。...

  • 工厂模式

    工厂模式 就是工厂---生产-->产品 在设计模式中,分为 简单工厂模式, 工厂方法模式,抽象工厂模式. 工厂模式...

  • 设计模式-之简单工厂模式(四)

    工厂模式的分类  工厂模式分为静态工厂模式、工厂方法模式、抽象工厂模式。 今天和大家分享的是简单工厂模式。 什么是...

网友评论

      本文标题:深入thinkphp的工厂模式

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