Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 有工厂时为什么需要创建AbstractFactory_Design Patterns - Fatal编程技术网

Design patterns 有工厂时为什么需要创建AbstractFactory

Design patterns 有工厂时为什么需要创建AbstractFactory,design-patterns,Design Patterns,当我们已经有了工厂,我们通过创建AbstractFactory实现了什么 我的意思是,通过使用工厂,我们也可以直接创建具体的对象,而不是为什么我们应该使用AbstractFactory和get Factory,而不是创建对象。工厂是用来创建具体对象的。如果您有对象的多个实现,您通常还需要工厂接口的多个实现,代码的某些部分将使用工厂接口,而不知道它是哪个具体工厂。因此您需要抽象工厂。工厂模式: 通过继承创建对象 只生产一种产品 在抽象创建者中实现代码,使用子类生成的具体类型 抽象工厂模式: 通过合

当我们已经有了工厂,我们通过创建AbstractFactory实现了什么


我的意思是,通过使用工厂,我们也可以直接创建具体的对象,而不是为什么我们应该使用AbstractFactory和get Factory,而不是创建对象。

工厂是用来创建具体对象的。如果您有对象的多个实现,您通常还需要工厂接口的多个实现,代码的某些部分将使用工厂接口,而不知道它是哪个具体工厂。因此您需要抽象工厂。

工厂模式:

  • 通过继承创建对象

  • 只生产一种产品

  • 在抽象创建者中实现代码,使用子类生成的具体类型

  • 抽象工厂模式:

  • 通过合成创建对象

  • 生产产品系列

  • 具体工厂实现工厂方法来创建产品

  • 工厂模式:工厂生产IPProduct实现

    抽象工厂模式:工厂生产IFactories,而IFactories又生产IProducts

    可能的复制品