![]() |
1
165
工厂创建对象。所以,如果你想建造
您不希望每次创建对象时都必须执行以下代码
工厂就在那里。我们定义了一个工厂来为我们解决这个问题:
现在我们要做的就是
真正的优势是当你想改变课堂。假设我们想通过一个不同的班级:
或新的B类:
现在,我们可以使用继承轻松地修改类的创建方式,将其放入不同的类集合中。 一个很好的例子是这个用户类:
在这个班里
现在,假设我们希望将所有数据存储在数据库中,更改它非常简单:
工厂是一种设计模式,我们用来控制如何将对象组合在一起,使用正确的工厂模式可以创建我们需要的定制对象。 |
![]() |
2
18
就像一个真实的工厂,它创造了一些东西并将其归还。 想象一下这样的事情
或工厂方法
工厂方法的实现将创建一个新实例并返回它。 |
![]() |
3
4
当您处理多个资源并希望实现高层抽象时,工厂设计模式非常好。 让我们把这个分成不同的部分。 假设您必须实现抽象,并且您的类的用户不需要关心您在类定义中实现的内容。 他/她只需要担心你的类方法的使用。 例如,您的项目有两个数据库
工厂类将负责为数据库连接创建对象。
用户只需要传递数据库类型的名称
输出:
将来,您可能有不同的数据库,那么您不需要更改整个代码,只需要传递新的数据库类型,其他代码将在不做任何更改的情况下运行。
输出:
希望这会有所帮助。 |
![]() |
4
1
一般来说,“工厂”会产生一些东西:在面向对象编程的情况下,“工厂设计模式”会产生对象。 不管是使用PHP、C语言还是其他面向对象的语言。 |
![]() |
5
1
工厂设计模式(工厂模式)用于松耦合。像工厂的意义一样,数据到工厂(生产数据)到最终用户。这样,工厂就打破了数据源和数据处理之间的紧密耦合。 |
![]() |
6
0
|
![]() |
7
0
这个答案与丹尼尔·怀特在其他文章中提到的使用工厂模式创建MySQL连接有关。 对于mysql连接,我宁愿使用singleton模式,因为您希望使用相同的连接 用于访问数据库而不是创建另一个数据库。 |
![]() |
8
0
实例化对象的经典方法是:
PHP能够使用以下语法从变量名动态创建对象:
其中变量$class name包含要实例化的类的名称。 所以经典的对象分解看起来像:
如果调用getInstance(“product”)函数,则此工厂将创建并返回product对象。否则,如果调用getInstance(“customer”)函数,则此工厂将创建并返回customer类型对象(从customer()类创建)。 不再需要这样做,可以将“product”或“customer”(现有类的确切名称)作为变量值发送给动态实例化:
|
![]() |
9
0
简单来说,像@pindatjuh这样的工厂会返回一个对象。 那么,构造函数有什么区别呢?(也一样)
使用构造函数:
使用工厂:
|